Доступ к меню приложений 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, а также статью о событиях, в которой должны содержаться некоторые дополнительные советы.

Другие вопросы по тегам