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

时间:2015-02-24 10:50:26

标签: 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>

在CSS中我使用:

.iconOpen {
  -fx-background-color: red;
  -fx-graphic: url("open.png");
}

结果,MenuItem只有红色背景颜色。但没有图标。

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

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

非常感谢!

1 个答案:

答案 0 :(得分:6)

如果查看CSS Reference Guide,您会注意到-fx-graphic仅用于LabelToolTip个节点。

所以这会奏效:

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

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