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

时间:2013-10-05 03:02:53

标签: java css javafx fxml

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

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

我尝试了一些没有运气的事情:How do you set the style for a JavaFX ContextMenu using css?How to style menu button and menu items

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

以及许多其他变体...

还有一些使用菜单项

的示例代码
// Menu
final ContextMenu contextMenu = new ContextMenu();

并构建一个MenuItem:

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

我可以尝试一下:

contextMenu.setStyle("-fx-focus-color:white");

maximizeMenuItem.setStyle("-fx-focus-color:white");

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

如果可能,请发布FXML解决方案以及内嵌代码解决方案。

1 个答案:

答案 0 :(得分:6)

好吧,有点尴尬。我让我的图层混乱到我的样式表未被应用的位置,就像我想的那样。

因此,在聚焦时更改menu-item背景颜色的正确方法是:

.menu-item:focused {
     -fx-background-color: #969A9F;
}

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