我正在嘗試學習JavaFX 2,但我一直在試圖風格化我的應用程序。我發現this document試圖記錄控件和應用於它們的CSS屬性。我不知道它是否不完整,如果我應該使用一些未知的選擇器,或者JavaFX的CSS支持不足以滿足我的需求。JavaFX CSS屬性和選擇器的最佳參考
這裏有幾個例子:(?是有一個選擇,或者一個屬性)
- 我會怎樣改變一個TabPane後面的區域的背景顏色不着色所有其他子組件
- 我將如何更改未選擇的選項卡的顏色?
我正在嘗試學習JavaFX 2,但我一直在試圖風格化我的應用程序。我發現this document試圖記錄控件和應用於它們的CSS屬性。我不知道它是否不完整,如果我應該使用一些未知的選擇器,或者JavaFX的CSS支持不足以滿足我的需求。JavaFX CSS屬性和選擇器的最佳參考
這裏有幾個例子:(?是有一個選擇,或者一個屬性)
你有沒有嘗試過這樣的事情?
這使用了一個ID選擇器,如「使用CSS清理JavaFX應用程序」文檔中所示。您也可以不使用「#MyTabPane」選擇器,並將其應用於所有TabPane。 (它看起來像.tab和.tab內容區域選擇器沒有在參考指南中討論過,我去了包含在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();
}
這正是我一直在尋找(除了.tab-header-background之外,我還在caspian.css中找到了它)。這是一個恥辱,沒有一個更完整的參考文件,但我想這將隨着時間的推移。 –
很棒的回答。爲了簡單起見,有沒有一種方法可以從java.ma上訪問標籤部件?我正在思考一些tabPane.getTabContent.setStyle()的內容? –