Spec-Zone.ru › OpenJDK 24

Класс SystemTray

java.lang.Object
java.awt.SystemTray
public class SystemTray extends Object
Класс SystemTray представляет системный лоток для рабочего стола. В Microsoft Windows он называется "Область состояния панели задач", в Gnome — "Область уведомлений", в KDE — "Системный лоток". Системный лоток общий для всех приложений, работающих на рабочем столе.

На некоторых платформах системный лоток может отсутствовать или не поддерживаться, в этом случае getSystemTray() генерирует исключение UnsupportedOperationException. Чтобы определить, поддерживается ли системный лоток, используйте isSupported().

Лоток может содержать один или несколько TrayIcons, которые добавляются в лоток с помощью метода add(java.awt.TrayIcon), и удаляются при необходимости с помощью remove(java.awt.TrayIcon). TrayIcon состоит из изображения, всплывающего меню и набора связанных слушателей. Подробности см. в классе TrayIcon.

В каждом приложении Java существует один экземпляр класса SystemTray, который позволяет приложению взаимодействовать с системным лотком рабочего стола во время его работы. Экземпляр SystemTray можно получить из метода getSystemTray(). Приложение не может создать собственный экземпляр SystemTray.

Следующий фрагмент кода демонстрирует, как получить доступ к системному лотку и настроить его:

 
     TrayIcon trayIcon = null;
     if (SystemTray.isSupported()) {
         // get the SystemTray instance
         SystemTray tray = SystemTray.getSystemTray();
         // load an image
         Image image = Toolkit.getDefaultToolkit().getImage(...);
         // create a action listener to listen for default action executed on the tray icon
         ActionListener listener = new ActionListener() {
             public void actionPerformed(ActionEvent e) {
                 // execute default action of the application
                 // ...
             }
         };
         // create a popup menu
         PopupMenu popup = new PopupMenu();
         // create menu item for the default action
         MenuItem defaultItem = new MenuItem(...);
         defaultItem.addActionListener(listener);
         popup.add(defaultItem);
         /// ... add other items
         // construct a TrayIcon
         trayIcon = new TrayIcon(image, "Tray Demo", popup);
         // set the TrayIcon properties
         trayIcon.addActionListener(listener);
         // ...
         // add the tray image
         try {
             tray.add(trayIcon);
         } catch (AWTException e) {
             System.err.println(e);
         }
         // ...
     } else {
         // disable tray option in your application or
         // perform other actions
         ...
     }
     // ...
     // some time later
     // the application state has changed - update the image
     if (trayIcon != null) {
         trayIcon.setImage(updatedImage);
     }
     // ...
 
 
Since:
1.6
См. также:
  • TrayIcon

Краткое описание методов

Модификатор и тип Метод Описание
void add(TrayIcon trayIcon)
Добавляет TrayIcon в SystemTray.
void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
Добавляет PropertyChangeListener в список слушателей для определённого свойства.
PropertyChangeListener[] getPropertyChangeListeners(String propertyName)
Возвращает массив всех слушателей, связанных с указанным свойством.
static SystemTray getSystemTray()
Возвращает экземпляр SystemTray, представляющий область лотка рабочего стола.
TrayIcon[] getTrayIcons()
Возвращает массив всех значков, добавленных в лоток данным приложением.
Dimension getTrayIconSize()
Возвращает размер в пикселях места, занимаемого значком лотка в системном лотке.
static boolean isSupported()
Возвращает, поддерживается ли системный лоток на текущей платформе.
void remove(TrayIcon trayIcon)
Удаляет указанный TrayIcon из SystemTray.
void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
Удаляет PropertyChangeListener из списка слушателей для конкретного свойства.

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание методов

getSystemTray

public static SystemTray getSystemTray()
Получает экземпляр SystemTray, представляющий область системного лотка рабочего стола. Этот метод всегда возвращает один и тот же экземпляр для каждого приложения. На некоторых платформах системный лоток может быть недоступен. Используйте метод isSupported() для проверки поддержки системного лотка.
Возвращает:
экземпляр SystemTray, представляющий область системного лотка рабочего стола
Исключения:
UnsupportedOperationException - если системный лоток не поддерживается текущей платформой
HeadlessException - если GraphicsEnvironment.isHeadless() возвращает true
См. также:
  • add(TrayIcon)
  • TrayIcon
  • isSupported()

isSupported

public static boolean isSupported()
Возвращает значение, указывающее, поддерживается ли системный лоток на текущей платформе. Минимальная поддержка системного лотка помимо отображения значка включает в себя всплывающее меню (см. TrayIcon.setPopupMenu(PopupMenu)) или обработку событий (см. TrayIcon.addActionListener(ActionListener)).

Разработчики не должны предполагать поддержку всех функций системного лотка. Чтобы гарантировать доступность стандартного действия значка лотка, добавьте стандартное действие как в обработчик событий, так и в всплывающее меню. Обратитесь к классу example для примера.

Примечание: При реализации SystemTray и TrayIcon настоятельно рекомендуется назначать разные жесты для всплывающего меню и события. Перегрузка жеста для обеих целей может привести к путанице и затруднить пользователю доступ к одному из них.

Возвращает:
false, если доступ к системному лотку не поддерживается; метод возвращает true, если минимальный доступ к системному лотку поддерживается, но не гарантирует поддержку всех функций системного лотка для текущей платформы
См. также:
  • getSystemTray()

add

public void add(TrayIcon trayIcon) throws AWTException
Добавляет TrayIcon в SystemTray. Значок лотка становится видимым в системном лотке после добавления. Порядок отображения значков в лотке не определен — он зависит от платформы и реализации.

Все значки, добавленные приложением, автоматически удаляются из SystemTray при завершении работы приложения, а также при недоступности системного лотка рабочего стола.

Параметры:
trayIcon - добавляемый TrayIcon
Исключения:
NullPointerException - если trayIcon является null
IllegalArgumentException - если один и тот же экземпляр TrayIcon добавляется более одного раза
AWTException - если системный лоток рабочего стола отсутствует
См. также:
  • remove(TrayIcon)
  • getSystemTray()
  • TrayIcon
  • Image

remove

public void remove(TrayIcon trayIcon)
Удаляет указанный TrayIcon из SystemTray.

Все значки, добавленные приложением, автоматически удаляются из SystemTray при завершении работы приложения, а также при недоступности системного лотка рабочего стола.

Если trayIcon является null или не был добавлен в системный лоток, исключение не выбрасывается и никаких действий не выполняется.

Параметры:
trayIcon - удаляемый TrayIcon
См. также:
  • add(TrayIcon)
  • TrayIcon

getTrayIcons

public TrayIcon[] getTrayIcons()
Возвращает массив всех значков, добавленных в лоток данным приложением. Вы не можете получить доступ к значкам, добавленным другим приложением. Некоторые браузеры разделяют апплеты, находящиеся в разных кодовых базах, в отдельные контексты и создают барьеры между этими контекстами. В такой ситуации будут возвращены только значки лотка, добавленные из текущего контекста.

Возвращаемый массив является копией фактического массива и может быть изменён любым способом без влияния на системный лоток. Для удаления TrayIcon из SystemTray используйте метод remove(TrayIcon).

Возвращает:
массив всех значков лотка, добавленных в этот лоток, или пустой массив, если значки не добавлены
См. также:
  • add(TrayIcon)
  • TrayIcon

getTrayIconSize

public Dimension getTrayIconSize()
Возвращает размер, в пикселях, занимаемый значком лотка в системном лотке. Разработчики могут использовать этот метод для получения предпочтительного размера значка лотка перед его созданием. Для удобства существует аналогичный метод TrayIcon.getSize() в классе TrayIcon.
Возвращает:
стандартный размер значка лотка в пикселях
См. также:
  • TrayIcon.setImageAutoSize(boolean)
  • Image
  • TrayIcon.getSize()

addPropertyChangeListener

public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
Добавляет PropertyChangeListener в список слушателей для конкретного свойства. В настоящее время поддерживаются следующие свойства:
Свойства SystemTray
Свойство Описание
trayIcons Массив объектов SystemTray значков лотка. Массив доступен через метод getTrayIcons(). Это свойство изменяется при добавлении (или удалении) значка лотка в системный лоток. Например, это свойство меняется, когда системный лоток становится недоступным на рабочем столе, и значки лотка автоматически удаляются.
systemTray Это свойство содержит экземпляр SystemTray, когда системный лоток доступен, или null в противном случае. Это свойство изменяется, когда системный лоток становится доступным или недоступным на рабочем столе. К свойству можно обратиться с помощью метода getSystemTray().

Слушатель отслеживает изменения свойств только в текущем контексте.

Если listener является null, исключение не выбрасывается, и никаких действий не выполняется.

Параметры:
propertyName - указанное свойство
listener - добавляемый слушатель изменений свойства
См. также:
  • removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)
  • getPropertyChangeListeners(java.lang.String)

removePropertyChangeListener

public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
Удаляет PropertyChangeListener из списка слушателей для определённого свойства.

Слушатель должен принадлежать текущему контексту.

Если propertyName или listener является null или недействительным, исключение не выбрасывается, и никаких действий не выполняется.

Параметры:
propertyName - указанное свойство
listener - удаляемый PropertyChangeListener
См. также:
  • addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)
  • getPropertyChangeListeners(java.lang.String)

getPropertyChangeListeners

public PropertyChangeListener[] getPropertyChangeListeners(String propertyName)
Возвращает массив всех слушателей, связанных с указанным свойством.

Возвращаются только слушатели в этом контексте.

Параметры:
propertyName - указанное свойство
Возвращает:
массив всех PropertyChangeListener, связанных с указанным свойством; если слушатели не добавлены или propertyName является null или недействительным, возвращается пустой массив
См. также:
  • addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)
  • removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.desktop/java/awt/SystemTray.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API