Значок в системном трее (меню Дополнительно) в Mac Os с помощью Java

Я разрабатываю настольное приложение с использованием Java. Я хочу поместить значок (с контекстным меню) в системный трей (называемый меню Extras в Mac Os). Java 6 поставляется с поддержкой для этого в Windows и Linux, но он не работает в Mac Os.

Я видел, как некоторые приложения делают то, что я хочу во всех трех операционных системах (например, DropBox), но я не знаю, сделаны ли они с Java.

Как я могу этого достичь?

Если это невозможно в Java, есть ли другой кросс-платформенный язык, способный это сделать?

спасибо.

2 ответов


AWT / Swing

по данным документация, OSX 10.5 update 1 и более новая поддержка TrayIcons

TrayIcons представлены на Mac OS X использование nsstatusmenus, которые представлены слева от стандартной системы меню Extras. Ява.ОУ.Изображение оформление в текстовом поле представлено в оттенки серого в соответствии со стандартом Mac OS X для экстра меню.

TrayIcon.displaymessage в() представляет собой малый немодальный диалог под связаны. Действие Actionlistener для TrayIcon только увольняется, если Кнопка" OK " в немодальном диалоговом окне нажата, а не если окно закрыто с помощью кнопки закрытия окна.

несколько вызовов Связаны.displayMessage () уволит предыдущие сообщения и оставить только последние сообщение. Если приложение не находится в на переднем плане, когда Связаны.displaymessage в() называется, приложение отскакивает значок в док. Окна сообщений помечены с значок приложения определите, какое приложение сработало уведомление.

ноя при условии, что этот образец:

java.awt.SystemTray.getSystemTray().add(new java.awt.TrayIcon(java.awt.Toolkit.getDefaultToolkit().getImage("foo.png")));

обратите внимание, что вы, вероятно, захотите прикрепить меню к этому значку, прежде чем добавлять его в лоток.

SWT

по данным документация, SWT 3.3 и более новые поддержки TrayItem иконки на OSX.

значки, размещенные в системном трее, теперь будут отображаться при работе в OS X в строке состояния. SWT TrayItem

этот фрагмент показывает, как создать меню и значок и поместить их в лоток.


я портировал приложение Windows на свой Mac без особых трудностей. Одна вещь, которую я заметил, - это то, что значки находятся в полном, живом цвете (не следуя конвенции Mac). Мне нужно будет добавить немного кода для конкретной ОС, чтобы преобразовать себя. Но это большой шаг вперед от версии интеграции рабочего стола, зависящей от DLL, от более ранних итераций Java.