【发布时间】:2019-05-18 04:29:32
【问题描述】:
有没有办法用JavaFX 创建状态菜单? JavaFX 的文档似乎没有类似的东西。
左侧菜单非常简单:
MenuBar menuBar = new MenuBar();
menuBar.useSystemMenuBarProperty().set(true);
Menu menu = new Menu("java");
MenuItem item = new MenuItem("Test");
menu.getItems().add(item);
menuBar.getMenus().add(menu);
BorderPane borderPane = new BorderPane();
borderPane.setTop(menuBar);
primaryStage.setScene(new Scene(borderPane));
primaryStage.show();
【问题讨论】:
-
没有给出任何细节,简短的回答是“是的,有办法”。对于这个网站来说,展示如何完成这样的事情可能过于宽泛。但是,该图像看起来可以使用包含各种状态图标/控件的
HBox来完成。 ControlsFX 库有一个可能有用的StatusBar控件。 -
实际上我不确定如何更具体。它与视觉组件无关(如
HBox),它是一个独特的MacOS 元素,可以使用特定的系统API(developer.apple.com/documentation/appkit/nsstatusbar)构建。所以我对JavaFX是否处理这个 API 很感兴趣。举个例子就是 Bitbar:github.com/matryer/bitbar -
啊,我明白了。 JavaFX 没有标准的公共 API 可以做到这一点。我也不知道有任何 JavaFX 特定的库可以做到这一点。您可以查看与 JavaFX 相关的 curated list,看看是否有任何适合您的需求。我不确定它是否是同一件事,但也有
java.awt.SystemTray。 -
@Slaw 好的,谢谢。这正是我所期望的。如果您添加答案,我会接受。
-
我同意@Slaw,但不清楚你是想修改Mac菜单栏还是创建自己的;这是
SystemTrayexample;另见How to make an OS X menubar in JavaFX。