【问题标题】:JavaFX context menu item groupJavaFX 上下文菜单项组
【发布时间】:2018-11-15 23:18:02
【问题描述】:

我想在同一个上下文菜单中设置一些(不是全部)上下文菜单项的可见性,而不必显式设置每个上下文菜单项的可见性,因为这看起来像很多样板代码。有没有办法让这些菜单项有一个公共容器或类似的东西,这样我就可以简单地设置这个容器的可见性?我用谷歌搜索了一下,但到目前为止没有发现任何相关信息。

我正在考虑为这些菜单项提供相同的 css 类,然后创建 2 个定义此类行为的样式表,一个带有 visibility:visible,另一个带有 visibility:hidden,然后我可以将样式表动态加载到适合我的需要。我相信这可行,但对我的口味来说似乎有点老套。我更喜欢更正常的方式来做到这一点。

【问题讨论】:

    标签: java javafx contextmenu menuitem


    【解决方案1】:

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

    private final BooleanProperty selectionItemsVisible =
        new SimpleBooleanProperty();
    
    // ...
    
        cutMenuItem.visibleProperty().bind(selectionItemsVisible);
        copyMenuItem.visibleProperty().bind(selectionItemsVisible);
        saveSelectionMenuItem.visibleProperty().bind(selectionItemsVisible);
    
        // ...
    
        selectionItemsVisible.set(true);
    

    【讨论】:

    • 这确实比我的 CSS 方法好。不过,我仍然更喜欢共同的父母方法。我的意思是,如果我想要在菜单项之间共享的其他行为,例如将它们作为一个组拖动或删除。你有什么建议吗?
    猜你喜欢
    • 2016-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 1970-01-01
    • 2015-01-18
    • 2011-11-09
    相关资源
    最近更新 更多