在NetBeans 7.4中为Java程序设置动态苹果菜单标题

4
我继承了一款Java应用程序(我相信)是在Eclipse中构建的,现在我使用NetBeans 7.4进行修改。我想设置主菜单标题,该标题将显示在Mac电脑旁边的苹果菜单旁边。当前的名称是MainForm,但我希望它可以动态更改为特定文本文件name.txt的内容。我查找了大量关于project.properties、ANT脚本等方面的信息,但我无法找到一个明确的(并且希望跨平台)的方法来设置这个主菜单标题。我的代码中有一个返回此名称的函数,因此如果有地方可以使用它,我可以使用它。谢谢!

1
可能与 https://dev59.com/fVHTa4cB1Zd3GeqPQ11D 相关。 - Richard Neish
我的建议是:这是不可能的,因为应用程序名称不应该更改。您可以设置窗口的标题栏,这可以更改,但是应用程序名称旨在从安装点保持恒定。您可以在应用程序包的Info.plist中或Xdock:name中设置它 - 我没有意识到其他方法。 - martinez314
自从发布这个问题以来,我已经了解到我可能需要创建一个可执行文件才能传递这个参数。如果这是答案,那就没问题了;如果最终是这样的话,我会发帖说明的。 - Tom Bisciglia
1个回答

4

我发现要在Mac OS X应用程序菜单中设置应用程序名称,并避免其显示为您的Java项目的名称,您必须在应用程序周期的非常早期使用System.setProperty("apple.awt.application.name", "您的应用程序名称");进行设置。

以下是如何在启动应用程序的“main”Java方法中设置我的应用程序名称:

public static void main(String[] args)  {
    // the application menu for Mac OS X must be set very early in the cycle
    String opSysName = System.getProperty("os.name").toLowerCase();
    if (opSysName.contains("mac")) {
        // to set the name of the app in the Mac App menu:
        System.setProperty("apple.awt.application.name", "Your App Name");
        //to show the menu bar at the top of the screen:
        System.setProperty("apple.laf.useScreenMenuBar", "true");
        // to show a more mac-like file dialog box
        System.setProperty("apple.awt.fileDialogForDirectories", "true");
        //underlying laf:
        javax.swing.UIManager.getInstalledLookAndFeels();

        // other set-up code goes here
    }
    else {  // not on Mac OS X
        // set-up code for non-Mac systems
    }

    java.awt.EventQueue.invokeLater(() -> {
        // run the program

    });

}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接