javafx-2 - 如何在 JavaFX 中制作 OS X 菜单栏

标签 javafx-2

我无法在屏幕顶部将 JavaFX MenuBar 显示为标准的 OS X 菜单栏。

这是我在应用程序的子类中尝试过的:

public void start(Stage primaryStage) throws Exception {
    final Menu menu1 = new Menu("File");
    final Menu menu2 = new Menu("Options");
    final Menu menu3 = new Menu("Help");

    MenuBar menuBar = new MenuBar();
    menuBar.getMenus().addAll(menu1, menu2, menu3);
    menuBar.setUseSystemMenuBar(true);

    primaryStage.setTitle("Creating Menus with JavaFX 2.0");
    final Group rootGroup = new Group();
    final Scene scene = new Scene(rootGroup, 800, 400, Color.WHEAT);


    rootGroup.getChildren().add(menuBar);
    primaryStage.setScene(scene);
    primaryStage.show();
}

我假设使用
menuBar.setUseSystemMenuBar(true);

会做的伎俩,但实际上它使 menuBar 完全消失。

我在 OS X 10.9 上使用 Java 1.8.0-b132

最佳答案

我已经成功使用此代码:

MenuBar menuBar = new MenuBar();
final String os = System.getProperty("os.name");
if (os != null && os.startsWith("Mac"))
  menuBar.useSystemMenuBarProperty().set(true);

BorderPane borderPane = new BorderPane();
borderPane.setTop(menuBar);

primaryStage.setScene(new Scene(borderPane));

关于javafx-2 - 如何在 JavaFX 中制作 OS X 菜单栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22569046/

相关文章:

JavaFX 2.2 : How to set SimpleBooleanProperty value to null?

带有自定义单元格工厂的 javafx ListView 不保留所选单元格

JavaFx 透明窗口 - 是的,请。鼠标透明 - 不,谢谢

java - 组合框标签未格式化

java - 拖放中的 NPE

css - 如何在 javaFX 应用程序中设置组合框提示文本的样式?

java - JavaFX-Launcher 中的循环阻止 JavaFX 应用程序线程启动

java - JavaFX 自定义控制台中的线程冲突

java - 如何在不使用 org.jboss.weld.environment.se.StartMain#main 的情况下在 Java SE 中正确初始化 JBoss Weld?

controller - 子 Controller 未注入(inject)主 Controller