根据完成的时间,在程序启动后设置属性可能为时已晚,无法生效。而是在启动时添加设置。
java -Dapple.laf.useScreenMenuBar=true -jar MyApplication.jar
或者,
Info.plist如Mac OS X的Java部署选项,Java词典Info.plist键,关于Info.plist键和Java运行时系统属性所述,在应用程序捆绑包中设置属性。
<key>Properties</key><dict> <key>apple.laf.useScreenMenuBar</key> <string>true</string> ...</dict>
附录:如下所示,使用@Urs Reupke或本人建议的方法不会出现问题。您的(丢失)DesktopMain可能是错误的。
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;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); } }); }}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)