2015-05-29 35 views
2

根據this Link的JavaFX 8u45微調,可以在通過樣式類許多方式來稱呼。我知道如何通過代碼來做到這一點。如何使用預定義的微調樣式類在FXML

例如:

spinner.getStyleClass().add(Spinner.STYLE_CLASS_SPLIT_ARROWS_HORIZONTAL); 

,或者

spinner.getStyleClass().add("split-arrows-horizontal"); 

然而,並非通過FXML。我確實嘗試過,但沒有奏效。我通過scenebuilder這樣做,版本8

<Spinner fx:id="spn" editable="true" styleClass="split-arrows-horizontal"/> 

回答

1

我不知道爲什麼,但在FXML定義styleClass

<Spinner fx:id="spn" styleClass="split-arrows-horizontal"/> 

不會導致並稱風格的styleClass清單。您可以通過

@FXML private Spinner spn; 

@Override 
public void initialize(URL url, ResourceBundle rb) 
{ 
    System.out.println("getStyleClass: " + spn.getStyleClass()); 
} 

然而檢查,在FXML它定義爲

<Spinner fx:id="spn"> 
    <styleClass> 
     <String fx:value="split-arrows-horizontal" /> 
    </styleClass> 
</Spinner> 

按預期工作。

+0

作品像魅力,偉大的場景建設者8,在消極的一面,這是不能從場景建設者它自己完成,我不得不從文本編輯器寫它 – jyonkheel

+0

好吧,我從場景建設者8本身工​​作,我增加了兩個樣式類(「分裂箭水平」和一個虛擬的風格類,它並沒有改變任何東西),和它的工作,在這裏發現的是,這些預先定義的Java FX樣式類不會FXML工作,除非它是與另一個合法或不存在的風格類 – jyonkheel

+0

很高興聽到@jyonkheel。我幾乎從不使用場景構建器,所以無法告訴它什麼。 –