如何更改MenuItem焦点/悬停颜色

Sna*_*Doc 4 css java javafx fxml

我正在尝试更改菜单项的高亮/对焦/悬停颜色.

我正在尝试将蓝色背景更改为另一种颜色,但似乎没有任何效果?

我尝试了一些没有运气的事情:你如何使用css为JavaFX ContextMenu设置样式? 以及 如何设置菜单按钮和菜单项的样式

.context-menu:focused {
    -fx-background-color:white;
    -fx-focus-color:white;
}

.menu-item:focused {
    -fx-background-color:white;
    -fx-focus-color:white;
}

.menu:focused {
    -fx-background-color:white;
    -fx-focus-color:white;
}
Run Code Online (Sandbox Code Playgroud)

和许多其他变化......

还有一些使用菜单项的示例代码

// Menu
final ContextMenu contextMenu = new ContextMenu();
Run Code Online (Sandbox Code Playgroud)

并构造一个MenuItem:

maximizeMenuItem = new MenuItem(Config.getString("Maximize"));
maximizeMenuItem.setOnAction(new EventHandler<ActionEvent>() { /* do stuff */ }
Run Code Online (Sandbox Code Playgroud)

我可以尝试一下:

contextMenu.setStyle("-fx-focus-color:white");
Run Code Online (Sandbox Code Playgroud)

要么

maximizeMenuItem.setStyle("-fx-focus-color:white");
Run Code Online (Sandbox Code Playgroud)

但我似乎无法弄清楚哪个-fx-css标签控制蓝色背景颜色......

如果可能,请发布FXML解决方案以及在线代码解决方案.

Sna*_*Doc 6

好吧,有点尴尬.我让我的图层搞砸了我的样式表没有像我想象的那样被应用的地方.

所以menu-item在聚焦时改变背景颜色的正确方法是:

.menu-item:focused {
     -fx-background-color: #969A9F;
}
Run Code Online (Sandbox Code Playgroud)

一旦我找到并整理出我的css分层问题,它现在可以按预期工作了: