JMenuBar вверху в MacOSX
Вопрос
В шаблоне настольного приложения Java, используемом Netbeans, строка меню создается с помощью JMenuBar и JMenuItems.
Как я могу отобразить эту панель вверху, где строки меню отображаются в MacOSX, а не в окне, как в Windows?
Решение
Примечание:Это устаревшая информация - нужен более свежий ответ.
Java-приложения выглядят как традиционные Java-приложения даже под OS X.
Если вам нужен естественный внешний вид, вам нужно внести несколько изменений.В этой серии статей они описаны.
http://www.oracle.com/technetwork/articles/javase/javatomac-140486.html http://www.oracle.com/technetwork/java/javatomac2-138389.html
Сюда входит настройка значка и текста в Dock, а также интеграция с меню приложений.
Я считаю, что утилита OS X «обернуть jar как приложение» с XCode автоматически устанавливает все эти свойства.
Другие советы
Добавив что-то вроде этого в свой код:
if (System.getProperty("os.name").contains("Mac")) {
System.setProperty("apple.laf.useScreenMenuBar", "true");
}
У меня была та же проблема, но я понял, что MenuBar нужно добавить в фрейм как:
Frame.setJMenuBar(менюБар);
вместо: Frame.add(jMenuBar); вместе с: System.setProperty("apple.laf.useScreenMenuBar", "true"); в основном методе.