Доступ к меню приложений Mac OS X из Java
Я пишу Java-приложение, предназначенное для всех платформ, но, в частности, я работаю над внешним видом и интеграцией OS X (я использую NetBeans на моем MacBook Pro). Я хотел бы получить доступ к меню приложения, то есть жирное меню, названное в честь приложения. Я хочу зарегистрировать слушателей для элементов About и Quit, а также показать элемент Preferences. Я тоже не прочь добавить еще несколько своих предметов.
Итак, как мне это сделать? Я видел, как предыдущие посты ссылались на OSXAdapter, но гении из Apple решили удалить его из своей библиотеки (или неоднозначно переименовать), потому что все ссылки перенаправляют на главную страницу, и весь мой поиск оказался бесплодным. Я также видел класс MacOSAppAdapter, но я не уверен, как его использовать. Все импортирующие и новые классы и иерархии немного сбивают с толку.
РЕДАКТИРОВАТЬ:
Вот что я сделал, чтобы связать элементы About, Preferences и Quit:
Я сделал новый класс, MacOSXAboutHandler, который расширяет
com.apple.eawt.Application
Его конструктор просто вызывает
setAboutHandler(AboutHandler aH)
и я предоставляю его своему собственному слушателю, который расширяет
AboutHandler
В моем основном классе я определяю, работаю ли я на Mac, используя
System.getProperty("os.name").contains("mac")
Если это правда, тогда я просто создаю новый экземпляр MacOSXAboutHandler. Конструктор добавляет мой обработчик, и всякий раз, когда приложение запускается (или даже тестируется в NetBeans), при щелчке по пункту "О программе" в жирном меню приложения выполняется код, указанный в моем AboutHandler.
То же самое делается для настроек и выхода, просто заменяя вхождения "about" на соответствующее действие. Все эти обработчики написаны так же, как любой другой слушатель Java.
1 ответ
Возможно, вы захотите взглянуть на Перенос вашего Java-приложения в Mac OS X и (что более важно) Перенос вашего Java-приложения в Mac OS X Часть 2 и Перенос вашего Java-приложения в Mac OS X Часть 3
Вы можете использовать Справочник по свойствам системы Java для Mac
Возможно, вы захотите взглянуть на API Java 6 Extensions от Apple, из моего краткого прочтения может показаться, что вы в основном хотите использовать экземпляр по умолчанию, если com.apple.eawt.Application, и предоставить необходимые обработчики (такие как setAboutHandler
).
Вы также можете прочитать пункты меню "О программе", "Выход" и "Настройки" Java и Mac OS X, а также статью о событиях, в которой должны содержаться некоторые дополнительные советы.