Java FX菜单背景颜色错误?

时间:2016-07-29 18:10:06

标签: javafx-2 javafx-css

所以我遇到了一个非常奇怪的小问题。我已经设计了我的未装饰应用程序的菜单和菜单栏。如果我将菜单项悬停在上下文菜单中,菜单会将其背景颜色更改为默认的一个窗口。

场景图片(在第二张图片中,我正在徘徊' Models'菜单项): 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 个答案:

答案 0 :(得分:3)

将此添加到您的css

{{1}}

答案 1 :(得分:3)

您要向.menumenu-item添加多余属性。只尝试照顾有关的财产。例如,在您的情况下menu需要在hoveredshowing事件中遵循您的着色模式。 所以添加

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

同样只将focused属性添加到menu-item,因为其余属性共享context-menu背景

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

查看简单演示的快照:

enter image description here

答案 2 :(得分:0)

您可以使用

.menu {
    -fx-background-color: #FFFFFF;
}

.menu .label {
    -fx-text-fill: black;
    -fx-font-family: verdana;
    -fx-font-size: 11.5px;
}

.menu:hover,
.menu:showing {
    -fx-background-color: #CCE8FF;
    -fx-text-fill: black;
}

.menu-item {
    -fx-background-color: #F2F2F2;
    -fx-text-fill: #000000;
    -fx-font-family: verdana;
    -fx-font-size: 11.4px;
}

.menu-item .label {
    -fx-text-fill: #000000;
    -fx-font-family: verdana;
}

.menu-item:focused .label {
    -fx-text-fill: #000000;
    -fx-font-family: verdana;
}

.menu-item:focused {
    -fx-background: -fx-accent;
    -fx-background-color: #91C9F7;
    -fx-text-fill: #000000;
    -fx-font-family: verdana;
}

.menu-item:disabled {
    -fx-background: -fx-accent;
    -fx-text-fill: #000000;
    -fx-opacity: 0.9;
    -fx-font-family: verdana;
}

.menu-item:focused:disabled {
    -fx-background: -fx-accent;
    -fx-background-color: lightgray;
    -fx-text-fill: #000000;
    -fx-font-family: verdana;
    -fx-opacity: 0.9;
}