import javafx.application.Application;
import javafx.geometry.HPos;
import javafx.geometry.VPos;
import javafx.scene.Scene;
import javafx.scene.control.SkinBase;
import javafx.scene.control.TextField;
import javafx.scene.control.TitledPane;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class TextFieldColorBug extends Application {
    public static class DummySkin extends SkinBase<TitledPane> {

        private StackPane contentHolder;

        public DummySkin(TitledPane control) {
            super(control);
            contentHolder = new StackPane();
            getChildren().setAll(contentHolder);
            contentHolder.getStyleClass().add("content-123"); // line A
            contentHolder.getChildren().setAll(getSkinnable().getContent());
        }

        @Override
        protected void layoutChildren(double contentX, double contentY, double contentWidth, double contentHeight) {
            layoutInArea(contentHolder, contentX, contentY, contentWidth, contentHeight, -1, HPos.LEFT, VPos.TOP);
        }
    }
    public static void main(String[] args) {
        Application.launch(TextFieldColorBug.class);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        TextField field1 = new TextField("Foo");
        field1.setEditable(false);

        TextField field2 = new TextField("Bar");
        field2.setEditable(false);

        GridPane grid = new GridPane();
        grid.getStyleClass().add("grid-123"); // line B
        grid.add(field1, 1, 0);
        grid.add(field2, 1, 1);
        TitledPane titled = new TitledPane("frame 123", grid);
        StackPane stack = new StackPane(titled);

        Scene scene = new Scene(stack);
        primaryStage.setScene(scene);

        scene.getStylesheets().add("/text-field-color-bug.css");

        primaryStage.setWidth(500);
        primaryStage.setHeight(500);
        primaryStage.show();
    }

}

