2016-07-29 12 views
1

私はかなり奇妙な小さな問題を抱えています。私は私の装飾されていないアプリケーションのメニューとメニューバーにスタイルを設定しました。コンテキストメニューでメニュー項目をホバーすると、メニューの背景色がデフォルトのウィンドウの色に変わります。Java FXのメニューの背景色のバグ?

シナリオの写真(第2画像に、私は「モデル」メニュー項目をホバリングしています): 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

あなたは.menumenu-itemにプロパティの冗長レイヤを追加している

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

: だから、残りの部分は、それは簡単なデモのスナップショットでcontext-menu backgound

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

ルックを共有しているため同様に、menu-itemにのみfocusedプロパティを追加

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

を追加どのように私はそれを逃したのか分かりません、ありがとう。 – Displee

1

あなたのCSSにこれを追加します。関連するプロパティだけを処理しようとしています。たとえば、あなたのケースでは、hoveredまたはshowingイベントのいずれかの場合、menuはあなたの着色パターンに従う必要があります。

enter image description here