JMenuBar на вершине в MacOSX - PullRequest
       14

JMenuBar на вершине в MacOSX

4 голосов
/ 31 октября 2009

В шаблоне Java Desktop Application, используемом Netbeans, создается строка меню с JMenuBar и JMenuItems.

Как я могу отобразить эту панель вверху, где строки меню отображаются в MacOSX, а не в окне, как в Windows?

Ответы [ 3 ]

13 голосов
/ 31 октября 2009

Добавив что-то подобное в ваш код:

if (System.getProperty("os.name").contains("Mac")) {
  System.setProperty("apple.laf.useScreenMenuBar", "true");
}
3 голосов
/ 31 октября 2009

Примечание. Это устаревшая информация. Требуется более свежий ответ.

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 as a application» с XCode автоматически устанавливает все эти свойства.

1 голос
/ 19 января 2013

У меня была та же проблема, но я понял, что MenuBar нужно добавить к кадру как:

frame.setJMenuBar (Menubar);

вместо: frame.add (jMenuBar); вместе с: System.setProperty ("apple.laf.useScreenMenuBar", "true"); в основном методе.

...