好的,我之前已经完成了Swing应用程序,并且我知道您是否要为应用程序菜单显示不同的名称(Mac上通常具有"偏好设置"以及& #34;退出"选项),您必须使用:System.setProperty("com.apple.mrj.application.apple.menu.about.name", "App name");
并且必须在创建JFrame之前执行它。我已经做到了这一点,但它继续显示我的主要班级'将name命名为菜单名称,就好像我根本没有编写那行代码。我搜索了这个问题,但找不到任何有用的东西,然后我就在这里搜索,但是每个遇到类似问题的人都在运行Java 1.5,1.6或1.7。所以我想也许它与我目前的Java版本1.8有关。
This,this和this无效。 This,this和this要么发送过时的信息,要么链接不再有效。另外,我正在运行Mac 10.8。
非常感谢任何建议/答案。
更新:
这是我原来的代码:
package bouncing_off_axes;
/**
* This is the driver class of this program.
*
* @author Mason
*
*/
public class Main {
/**
* The driving method.
*
* @param args
*/
public static void main(String[] args) {
System.setProperty("com.apple.mrj.application.apple.menu.about.name", "Physics Engine Practice - Bouncing Balls");
SimulationController view = new SimulationController("Test");
}
}
以下是垃圾邮件提供给其他人的解决方案:
package bouncing_off_axes;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JPanel;
/** @see https://stackoverflow.com/questions/8955638 */
public class NewMain {
public static void main(String[] args) {
System.setProperty("apple.laf.useScreenMenuBar", "true");
System.setProperty(
"com.apple.mrj.application.apple.menu.about.name", "Name");
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
JFrame frame = new JFrame("Gabby");
final JPanel dm = new JPanel() {
@Override
public Dimension getPreferredSize() {
return new Dimension(320, 240);
}
};
dm.setBorder(BorderFactory.createLineBorder(Color.blue, 10));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(dm);
frame.pack();
frame.setLocationByPlatform(true);
JMenuBar menuBar = new JMenuBar();
JMenu fileMenu = new JMenu("File");
menuBar.add(fileMenu);
frame.setJMenuBar(menuBar);
frame.setVisible(true);
}
});
}
}
显然我需要10个声望来发布图片,所以我无法向您展示结果,但它没有成功。
答案 0 :(得分:7)
在Mac OS X 10.9上使用Java 8,设置System
属性
System.setProperty("com.apple.mrj.application.apple.menu.about.name", "Name");
在更改应用程序菜单中显示的名称时似乎无效。仍然有效的替代方案包括:
默认情况下,应用程序菜单将显示java
命令行中指定的类的简单名称或JAR清单的Main-Class
属性。
java -cp build/classes mypackage.Name
java -jar dist/MyJar.jar
使用-Xdock:name="Name"
命令行参数。
java -Xdock:name="Name" -cp build/classes mypackage.Main
java -Xdock:name="Name" -jar MyJar.jar
将应用程序JAR添加到Mac应用程序包中,如here所示,将属性添加到Info.plist
。
<key>JVMOptions</key>
<string>-Xdock:name=Name</string>