【问题标题】:How to change MenuItem focus/hover color如何更改 MenuItem 焦点/悬停颜色
【发布时间】:2013-10-12 04:16:00
【问题描述】:

我正在尝试更改菜单项的突出显示/焦点/悬停颜色。

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

我从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 解决方案以及内联代码解决方案。

【问题讨论】:

  • 最好把代码贴在小提琴里。
  • 您是否尝试将所有-fx-background-color: #006699; 更改为另一种颜色?
  • 是的,如果我使用contextMenu.setStyle("-fx-background-color:white");,它确实会使背景变白,但是当您将鼠标悬停在其中一个菜单项上时,它仍然是蓝色的。所以我想我错过了我需要使用哪个 fx css 标签?
  • 是否有.menu-item:hover 属性...我似乎记得读过什么?
  • 尝试查看默认 JavaFx 样式表中的菜单项样式。任何使该项目变为蓝色的东西都必定存在于某处。 link

标签: java css javafx fxml


【解决方案1】:

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

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

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

一旦我发现并解决了我的 css 分层问题,它现在可以按预期工作:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多