Java FX 菜单背景颜色错误?

Java FX Menu background color bug?

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

场景图片(在第二张图片中,我将鼠标悬停在'Models'菜单项上):

有谁知道如何修复蓝色背景?我希望菜单像第一张图片一样具有我的悬停背景。菜单项也应该有自己的背景,如果我没有用鼠标在上面,它不会跳到蓝色。

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);
}

提前致谢。

将此添加到您的 css

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

您正在向 .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>;
}

查看简单演示截图:

你可以使用

.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;
}