Подтвердить что ты не робот

Значок "Системный лоток" ( "Экран меню" ) в Mac Os с использованием Java

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

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

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

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

Спасибо.

4b9b3361

Ответ 1

AWT/Swing

Согласно документация, обновление OSX 10.5 1 и более новая поддержка TrayIcon s

TrayIcons представлены в Mac OS X используя NSStatusMenus, которые представлены слева от стандартной системы меню. Java.awt.Image произведение для TrayIcon представлено в в оттенках серого согласно стандарту Mac OS X для дополнительных меню.

TrayIcon.displayMessage() представляет небольшой немодальный диалог под TrayIcon. TheListListener для TrayIcon запускается только в том случае, если Кнопка "ОК" в немодальном диалоговом окне нажата, а не если окно закрывается с помощью кнопки закрытия окна.

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

noah предоставил этот образец:

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

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

Ответ 2

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