我是JavaFX的新手,我对设计有疑问。我正在使用Scene Builder在FXML中创建主菜单。我有各种菜单按钮,每个按钮都有一个子菜单。这些子菜单选项将打开新窗口。是否可以声明这些子菜单选项,以便在点击它们后它们不会消失?如果是这样,我可以在我的fxml中声明它,或者我必须以编程方式进行声明吗?
此外,是否可以将其从菜单按钮中分离出来?我希望我的菜单选择距离菜单按钮本身大约1厘米。 谢谢
答案 0 :(得分:1)
建议的替代解决方案
如果您希望在单击按钮后更灵活地定位弹出菜单,以及对菜单显示和隐藏时的精确控制,请尝试使用Button + ContextMenu而不是MenuButton。
相关方法是:
在ContextMenu javadoc的按钮按下按钮上有触发上下文菜单的示例代码。
您可能还需要监视上下文菜单的showingProperty,如果JavaFX系统决定尝试在用户操作后隐藏它并且您仍希望菜单可见,则在监听器中再次显示菜单。
其他无关评论的答案
好听这听起来合乎逻辑,但由于我还没有真正擅长JavaFX,你的想法非常具有挑战性。
实现起来并不难,但是从你后来的评论来看,它听起来可能不是你想要的用户界面(这对我来说很有意义,因为你在问题中描述的界面似乎有点奇怪)。
我想如果拥有一个具有各种菜单选项的静态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非常出色。初学者的难点在于教程也是部分参考资料,这使得它们的一部分变得复杂(尤其是与部署相关的部分)。
如果您更喜欢不同的教程风格,请参阅: