2015-02-24 51 views
1

我想通過CSS設置MenuItem的圖標。我搜查了很多,並嘗試了很多,現在沒有任何成功。JavaFX:通過CSS設置MenuItem的圖標/圖形

這裏是一個小FXML例如:

<MenuBar> 
    <menus> 
    <Menu text="File"> 
     <items> 
     <MenuItem text="Open" styleClass="iconOpen" /> 
     <MenuItem text="Save" /> 
     <MenuItem text="Exit" /> 
     </items> 
    </Menu> 
    </menus> 
</MenuBar> 

在CSS我用:

.iconOpen { 
    -fx-background-color: red; 
    -fx-graphic: url("open.png"); 
} 

作爲結果,該菜單項只得到了一個紅色的背景色。但沒有圖標。

我可以直接在FXML中將圖標集成爲ImageView for MenuItem,但是我無法用CSS設計它的樣式。但我想分開樣式(CSS)和結構(FXML)。

也許有人可以給我一個提示。我不在這裏做錯了什麼。

非常感謝!

回答

6

如果你看看CSS Reference Guide,你會注意到-fx-graphic僅用於LabelToolTip節點。

那麼這將工作:

.iconOpen { 
    -fx-background-color: red; 
} 
.iconOpen > .label { 
    -fx-graphic: url("lock24.png"); 
} 

因爲你設置的菜單項的標籤圖形。

+0

謝謝!你是對的。 – Catscratch 2015-02-24 11:46:46