【发布时间】:2016-05-22 22:10:03
【问题描述】:
所以我环顾四周,但找不到任何有关如何在 JavaFX 中制作应用程序菜单的信息。
我见过一个项目“Jayatana”,它似乎允许应用程序至少在使用 Intellij 的 Ubuntu 中拥有正确的应用程序菜单(例如)。
我还看到了一些建议,即使用以下内容对 OS X 用户有效:-
final List<MenuBase> menus = new ArrayList<>();
menus.add(GlobalMenuAdapter.adapt(menu));
Toolkit.getToolkit().getSystemMenu().setMenus(menus);
还有NSMenuFX 项目,同样适用于 OS X。
我还看到了java-gnome 项目,我认为它只适用于 Swing。
但我真正想要的是制作应用程序菜单的某种方式,最好是非操作系统特定的方式。
我很乐意使用第三方 jar 或任何可以完成繁重工作的东西,但真的存在这样的东西吗?
此时我最好的选择是使用 Swing 创建 JavaFX 应用程序的外壳,并使用将应用程序菜单与 Swing 集成的方法?如果是这样的话,有没有什么东西可以从 JavaFX 自动完成并处理不同实现的切换?
编辑
最后,我只是简单地使用了 Swing 和 JavaFX 的组合。我将 JavaFX 应用程序放入其中,让我可以使用已经在 Swing 中工作的应用程序菜单。
不理想,但确实有效。
【问题讨论】:
-
从 Java 9 开始,java.awt.Desktop class 添加了部分支持真正应用程序菜单的方法,例如
setPreferencesHandler和setAboutHandler。