【问题标题】:Menu Button that does not dismiss options onclick in JavaFX 2JavaFX 2 中不会关闭选项 onclick 的菜单按钮
【发布时间】:2013-05-23 17:42:34
【问题描述】:

我是 JavaFX 的新手,我对设计有疑问。我正在使用 Scene Builder 在 FXML 中创建我的主菜单。我有各种菜单按钮,每个按钮都有一个子菜单。这些子菜单选项将打开新窗口。是否可以声明这些子菜单选项,以便在我单击它们后它们不会消失?如果是这样,我可以在我的 fxml 中声明它还是必须以编程方式进行?

另外,是否可以将其与菜单按钮分离?我希望我的菜单选择距离菜单按钮本身大约 1 厘米。 谢谢

【问题讨论】:

    标签: javafx-2 fxml scenebuilder


    【解决方案1】:

    建议的替代解决方案

    如果您希望在单击按钮后更灵活地定位弹出菜单以及更好地控制菜单何时显示和隐藏,请尝试使用 Button + ContextMenu 而不是 MenuButton。

    相关方法有:

    ContextMenu javadoc 中有用于在按钮按下按钮上触发上下文菜单的示例代码。

    您可能还需要监视上下文菜单的 showingProperty 并在侦听器中再次显示菜单,如果 JavaFX 系统决定在某些用户操作后尝试隐藏它并且您仍然希望菜单可见。


    对其他无关 cmets 的回答

    好吧,这听起来很合乎逻辑,但由于我在 JavaFX 方面还不是很擅长,所以你的想法很有挑战性。

    实现起来并不难,但从您随后的 cmets 看来,它可能不是您想要的用户界面(这对我来说很有意义,因为您在问题中描述的界面似乎有点奇怪)。

    我想如果拥有一个具有各种菜单选项的静态 xml 会更容易,可以说向右对齐,然后每当我单击其中一个选项时,都会在屏幕中间加载一个新的 FXML子菜单的按钮?

    这似乎是合乎逻辑的。听起来像是传统网页布局的 JavaFX 版本,其侧面的导航菜单控制中心的内容窗格。

    仅 Java 版本是:How to have menus in java desktop application。您可以毫不费力地将其调整为基于 FXML 的版本。

    您可能还对Managing Multiple Screens in JavaFX 感兴趣。

    此外,非常感谢任何针对初学者的教程。这些 Oracle 对我来说没有太大意义

    如果您刚开始使用 JavaFX,我建议您只使用 JavaFX 的 Java API 部分,直到您熟悉它们,然后在您熟悉 Java API 后才使用 FXML。

    我个人认为Oracle JavaFX Tutorials 非常棒。初学者的困难在于教程也是部分参考资料,这使得其中的某些部分变得复杂(尤其是与部署相关的部分)。

    如果您喜欢不同的教程风格,请参阅:

    1. Makery JavaFX tutorial(适合初学者)
    2. zenjava tutorials(更高级)

    【讨论】:

    • OK 这听起来合乎逻辑,但由于我在 JavaFX 方面还不是很擅长,你的想法很有挑战性。我想如果拥有一个具有各种菜单选项的静态 xml 会更容易,可以说向右对齐,然后每当我单击其中一个选项时,都会在屏幕中间加载一个新的 FXML,按住按钮子菜单?此外,对于初学者的任何教程将不胜感激。这些 Oracle 对我来说没有太大意义
    • 更新了基于 cmets 的答案。评论问题比堆栈溢出更适合Oracle JavaFX forum discussions(这是纯技术问题问答)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-16
    • 1970-01-01
    • 2015-10-10
    • 2014-05-15
    相关资源
    最近更新 更多