代码之家  ›  专栏  ›  技术社区  ›  Michael

在MAC上设置JAVA Swing应用程序名称

  •  17
  • Michael  · 技术社区  · 14 年前

    我正在用Java 1.6编写一个用于Mac的JAVA Swing应用程序。我已经阅读了一些教程,让您了解如何更好地将Java应用程序与OS X集成在一起,但有一件事我无法工作。我无法显示应用程序名(Mac菜单栏中的第一个粗体菜单项)。默认情况下,将显示主类的完全限定类名,我无法更改它。

    This site 表示必须设置以下属性:

    System.setProperty("com.apple.mrj.application.apple.menu.about.name", "AppName");
    

    但这不起作用(我运行的是10.6,所以可能属性名改变了?).

    当我在XCODEL(我通常使用Eclipse)创建一个新的Java项目时,这个名字神奇地被设置了!(它以一个可运行的、锅炉板应用程序开始)我已经在Xcode项目中查看了这是如何完成的,但是我无法理解!

    我的猜测是,如果你把你的Java应用程序封装在一个Mac *.app包中,它只会设置应用程序名称,但是不知道是否有人知道答案。谢谢。

    编辑 :有趣的是,如果我将应用程序打包到一个可运行的JAR文件中,它会设置应用程序名,但是如果我从Eclipse运行它,则不会设置应用程序名。

    2 回复  |  直到 7 年前
        1
  •  29
  •   uthark    7 年前

    在构建GUI之前,您应该在应用程序初始化期间执行以下操作:

    // take the menu bar off the jframe
    System.setProperty("apple.laf.useScreenMenuBar", "true");
    
    // set the name of the application menu item
    System.setProperty("com.apple.mrj.application.apple.menu.about.name", "AppName");
    
    // set the look and feel
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    

    更新。 上面的代码在Java 1.5中工作,这个代码在1.6中可能不起作用。

    对于新的Java查看 documentation :

    1. 要么使用 -Xdock:name 命令行属性: Xdock:name=YourAppName
    2. 或设置 CFBundleName 在信息属性列表文件(plist)中
        2
  •  5
  •   PeterVermont    12 年前

    在Mac 107.5上,用Java 1.6编程但不使用Java 1.7进行编程的属性设置