在Mac上设置Java Swing应用程序名称

时间:2010-07-01 01:54:11

标签: java macos swing

我正在使用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,所以可能会更改属性名称?)。

当我在XCode中创建一个新的Java项目(我通常使用Eclipse)时,这个名字会以某种方式神奇地被设置! (它以一个可运行的锅炉板应用程序启动你)我已经在XCode项目周围查看了这是如何完成的,但我无法理解它!

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

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

2 个答案:

答案 0 :(得分:29)

在构建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. 或者在信息属性列表文件(plist)中设置CFBundleName

答案 1 :(得分:5)

在Mac 10.7.5上,以编程方式设置该属性适用于Java 1.6但不适用于Java 1.7