Spec-Zone .ru
спецификации, руководства, описания, API
|
Системный лоток является специализированной областью рабочего стола, где пользователи могут получить доступ к в настоящий момент рабочим программам. Эта область может быть упомянута по-другому на различных операционных системах. На Microsoft Windows системный лоток упоминается как область Состояния Панели задач, в то время как на Среде Объектной модели Сети GNU (GNOME) Рабочий стол это упоминается как область уведомлений. На K Настольной среды (KDE) эта область упоминается как Системный лоток. Однако, на каждой системе область лотка совместно используется всеми приложениями, работающими на рабочем столе.
java.awt.SystemTray
class, представленный в Java™ SE версия 6, представляет системный лоток для рабочего стола. К системному лотку можно получить доступ, вызывая помехи SystemTray.getSystemTray()
метод. Прежде, чем вызвать этот метод, используйте статический метод isSupported()
isSupported()
метод возвращает false. Если приложение пытается вызвать getSystemTray()
метод в таком случае, метод бросит a java.lang.UnsupportedOperationException
.
Приложение не может создать экземпляр SystemTray
class. Только единственный экземпляр, создаваемый в пределах этого class, может существовать, и этот экземпляр может быть получен, используя getSystemTray()
Системный лоток содержит один или более значков лотка, которые добавляются к лотку, используя add(java.awt.TrayIcon)
remove(java.awt.TrayIcon)
add()
метод может бросить AWTException
если операционная система или Среда выполнения Java решают, что значок не может быть добавлен к системному лотку. Например, AWTException
будет брошен рабочими столами X Window, если системный лоток не будет существовать на рабочем столе. TrayIcon
TrayIcon
объект генерирует различные события от нажатия мыши и поддерживает добавление соответствующих слушателей, чтобы получить уведомление об этих событиях. TrayIcon
class обрабатывает некоторые из событий самостоятельно. Например, по умолчанию, когда щелчок правой кнопкой выполняется на значке лотка, он выводит на экран указанное раскрывающееся меню. Когда двойной щелчок выполняется, TrayIcon
объект генерирует ActionEvent
запустить приложение. Когда парения указателя мыши по значку лотка, подсказка выводится на экран. Изображение значка автоматически изменяется, чтобы соответствовать месту, выделенному для изображения на лотке.
Следующий демонстрационный пример, разработанное использование пакета AWT, демонстрирует функции классов SystemTray и TrayIcon.
К сожалению, текущая реализация TrayIcon
class оказывает ограниченную поддержку Swing раскрывающееся меню ( JPopupMenu
class), и не позволяет приложению использовать все возможности javax.swing
пакет. Предложение по обходному решению по этой проблеме описывается в Базе данных Ошибки, см. ID Ошибки
bulb.gif
файл изображения в image
каталог. Скомпилируйте и выполните пример, консультируйтесь, пример индексируют.Следующий фрагмент кода показывает, как добавить значок лотка к системному лотку и применить раскрывающееся меню:
... //Check the SystemTray is supported if (!SystemTray.isSupported()) { System.out.println("SystemTray is not supported"); return; } final PopupMenu pop-up = new PopupMenu(); final TrayIcon trayIcon = new TrayIcon(createImage("images/bulb.gif", "tray icon")); final SystemTray tray = SystemTray.getSystemTray(); // Create a pop-up menu components MenuItem aboutItem = new MenuItem("About"); CheckboxMenuItem cb1 = new CheckboxMenuItem("Set auto size"); CheckboxMenuItem cb2 = new CheckboxMenuItem("Set tooltip"); Menu displayMenu = new Menu("Display"); MenuItem errorItem = new MenuItem("Error"); MenuItem warningItem = new MenuItem("Warning"); MenuItem infoItem = new MenuItem("Info"); MenuItem noneItem = new MenuItem("None"); MenuItem exitItem = new MenuItem("Exit"); //Add components to pop-up menu pop-up.add(aboutItem); pop-up.addSeparator(); pop-up.add(cb1); pop-up.add(cb2); pop-up.addSeparator(); pop-up.add(displayMenu); displayMenu.add(errorItem); displayMenu.add(warningItem); displayMenu.add(infoItem); displayMenu.add(noneItem); pop-up.add(exitItem); trayIcon.setPopupMenu(pop-up); try { tray.add(trayIcon); } catch (AWTException e) { System.out.println("TrayIcon could not be added."); } ...
Полный код для этого демонстрационного примера доступен в TrayIconDemo.java
файл. Этот демонстрационный пример также использует bulb.gif
файл изображения.
Удаление текущих ограничений на применение компонентов Swing позволит разработчикам добавить такие компоненты как JMenuItem
(с изображением), JRadioButtonMenuItem
, и JCheckBoxMenuItem
.
Только единственный экземпляр, создаваемый в пределах SystemTray
class может существовать.
Метод | Цель |
---|---|
добавить | Добавляет значок лотка к системному лотку. Значок лотка становится видимым в системном лотке, как только это добавляется. Порядок, в котором значки выводятся на экран в лотке, не определяется — это - платформа - и зависящий от реализации. |
|
Добирается SystemTray экземпляр, который представляет область лотка рабочего стола. Этот метод всегда возвращает тот же самый экземпляр на приложение. На некоторых платформах не может поддерживаться системный лоток. Используйте isSupported() метод, чтобы проверить, поддерживается ли системный лоток. |
|
Информация о возвратах относительно того, поддерживается ли системный лоток на текущей платформе. В дополнение к отображению значка лотка минимальная поддержка системного лотка включает любого раскрывающееся меню (см. TrayIcon.setPopupMenu(PopupMenu) метод) или событие действия (см. TrayIcon.addActionListener(ActionListener) ). |
A TrayIcon
объект представляет значок лотка, который может быть добавлен к системному лотку. A TrayIcon
у объекта может быть подсказка (текст), изображение, раскрывающееся меню, и ряд слушателей, связанных с этим.
Метод | Цель |
---|---|
|
Устанавливает свойство авторазмера. Авторазмер определяет, измеряется ли изображение лотка автоматически, чтобы соответствовать месту, выделенному для изображения на лотке. По умолчанию свойство авторазмера устанавливается в false . |
|
Устанавливает раскрывающееся меню для этого TrayIcon объект. Если раскрывающийся null , никакое раскрывающееся меню не будет связано с этим TrayIcon объект. |
|
Устанавливает строку подсказки для этого TrayIcon объект. Подсказка выводится на экран автоматически, когда мышь нависает над значком. Установка подсказки к null удаляет любой текст подсказки. Когда выведено на экран, строка подсказки может быть усеченной на некоторых платформах; число символов, которые могут быть выведены на экран, зависимо от платформы. |
Пример | Где Описано | Примечания |
---|---|---|
TrayIconDemo |
Этот раздел | Создает значок лотка в системном лотке, добавляет раскрывающееся меню к значку лотка. |