JavaFX上下文菜单项组

时间:2018-11-15 23:18:03

标签: java javafx contextmenu menuitem

我想在同一上下文菜单中设置某些(不是全部)上下文菜单项的可见性,而不必显式设置每个项目的可见性,因为这似乎很多样板代码。有没有办法为这些菜单项提供一个通用容器或类似的容器,以便我可以简单地设置此容器的可见性?我已经在Google上搜索了一下,但到目前为止没有任何相关信息。

我正在考虑为这些菜单项提供相同的CSS类,然后创建2个样式表来定义此类的行为,一个样式表使用visibility:visible,另一个样式表使用visibility:hidden,然后可以动态加载样式表可以满足我的需求。我相信这可以解决问题,但就我的口味而言似乎有点不客气。我希望以更普通的方式来做到这一点。

1 个答案:

答案 0 :(得分:2)

将其可见性属性绑定到一个单独的属性。

private final BooleanProperty selectionItemsVisible =
    new SimpleBooleanProperty();

// ...

    cutMenuItem.visibleProperty().bind(selectionItemsVisible);
    copyMenuItem.visibleProperty().bind(selectionItemsVisible);
    saveSelectionMenuItem.visibleProperty().bind(selectionItemsVisible);

    // ...

    selectionItemsVisible.set(true);