JavaFX:通过CSS设置MenuItem的图标/图形

Cat*_*tch 1 css javafx fxml

我想通过CSS设置MenuItem的图标.我搜索了很多并尝试了很多,现在没有任何成功.

这是一个小的FXML示例:

<MenuBar>
  <menus>
    <Menu text="File">
      <items>
        <MenuItem text="Open" styleClass="iconOpen" />
        <MenuItem text="Save" />
        <MenuItem text="Exit" />
      </items>
    </Menu>
  </menus>
</MenuBar>
Run Code Online (Sandbox Code Playgroud)

我在CSS中使用:

.iconOpen {
  -fx-background-color: red;
  -fx-graphic: url("open.png");
}
Run Code Online (Sandbox Code Playgroud)

因此,MenuItem只有红色背景颜色.但没有图标.

我可以直接在FXML中将图标作为ImageView for MenuItem集成,但我不能用CSS来设置它.但我想将样式(css)与结构(fxml)分开.

也许有人可以给我一个提示.我不知道我在这里做错了什么.

非常感谢!

Jos*_*eda 6

如果您查看CSS参考指南,您会注意到-fx-graphic仅在LabelToolTip节点上使用.

所以这将有效:

.iconOpen  {
    -fx-background-color: red;
}
.iconOpen > .label {
    -fx-graphic: url("lock24.png");
}
Run Code Online (Sandbox Code Playgroud)

因为您正在设置菜单项标签的图形.