2016-07-29 182 views
1

所以我有一個很奇怪的小問題。我設計了我的未修飾應用程序的菜單和菜單欄。如果我將菜單項懸停在上下文菜單中,菜單會將其背景顏色更改爲默認的一個窗口。Java FX菜單背景顏色錯誤?

圖片的場景(第二張圖片,我徘徊在「模型」菜單項): Here I am hovering a menu which is doing its job.

If I hover one of my menu items, the menu it's background jumps to blue.

If I am not standing on the menu item with my mouse, the menu item will also have a blue background.

有誰知道如何解決的藍色背景?我想讓菜單具有像第一張圖片一樣的懸停背景。菜單項也應該有它自己的背景,如果我不用鼠標就可以跳到藍色。

CSS:

.menu-bar { 
    -fx-background-color: transparent; 
} 
.menu { 
    -fx-label-padding: 3px; 
} 
.menu .label, .menu-item .label { 
    -fx-text-fill: #eee; 
} 
.menu:hover, .menu:focused, .menu:pressed { 
    -fx-background-color: rgba(0, 0, 0, 0.2); 
} 
.menu-item:hover { 
    -fx-background-color: rgba(0, 0, 0, 0.4); 
} 
.context-menu { 
    -fx-background-color: rgba(0, 0, 0, 0.3); 
} 

預先感謝您。

回答

3

添加到您的CSS

.menu-item:focused { 
    -fx-background-color : <preferred color>; 
} 
+0

我不知道我是如何錯過的,謝謝。 – Displee

1

您要添加的屬性的冗餘層.menumenu-item。只嘗試照顧相關屬性。例如在你的情況下,menu需要遵循你的着色模式,當hoveredshowing事件。 所以加

.menu:hover, .menu:showing{ 
    -fx-background-color: <preferred backgound>; 
} 

同樣只focused屬性添加到menu-item,因爲剩下的這股context-menu backgound

.menu-item:focused{ 
    -fx-background-color: <preferred background>; 
} 

看看這個簡單的演示的快照:

enter image description here