6

我正在尝试学习 JavaFX 2,但我在尝试设计我的应用程序时遇到了很多困难。我发现这个文档试图记录控件和适用于它们的 css 属性。我不知道它是否不完整,我是否应该使用一些未知的选择器或 JavaFX 的 CSS 支持不足以满足我的需求。

这里有几个例子:

  • 如何在不为所有其他子组件着色的情况下更改 TabPane 后面区域的背景颜色(是否有一个选择器,或者可能是一个属性?)
  • 如何更改未选择标签的颜色?
4

2 回答 2

10

你有没有尝试过这样的事情?

这使用了一个 ID 选择器,如“Skinning JavaFX Applications with CSS”文档中所示。您也可以取消“#MyTabPane”选择器并将其应用于所有 TabPane。(看起来 .tab 和 .tab-content-area 选择器在参考指南中没有讨论。我去了 jfxrt.jar 文件中包含的“caspian.css”文件来找到它们。)

TabExample.css

#MyTabPane .tab {
    -fx-background-color: blue;
}
#MyTabPane .tab:selected {
    -fx-background-color: red;
}

#MyTabPane .tab-content-area {
    -fx-background-color: cyan;
}

#MyTabPane .tab *.tab-label {
    -fx-text-fill: white;
}

TabPaneEx.java

@Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Hello World");
        StackPane root = new StackPane();
        TabPane pane = new TabPane();
        pane.setId(("MyTabPane"));
        Tab tab1 = new Tab("ONE");
        Tab tab2 = new Tab("TWO");
        Tab tab3 = new Tab("THREE");
        pane.getTabs().addAll(tab1,tab2,tab3);
        Scene scene = new Scene(root, 300, 250);
        root.getChildren().add(pane);
        scene.getStylesheets().add(
                this.getClass().getClassLoader().getResource("tabpaneex/TabExample.css").toString());
        primaryStage.setScene(scene);
        primaryStage.show();
    }
于 2011-11-05T15:17:36.187 回答
4

JavaFX CSS 参考指南

使用 CSS 为 JavaFX 应用程序蒙皮

于 2011-11-01T22:13:50.550 回答