Spec-Zone.ru › OpenJDK 27

Класс SystemTray

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

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

Системный трей SystemTray может содержать один или несколько объектов TrayIcons, которые добавляются в трей с помощью метода add(TrayIcon) и удаляются, когда больше не нужны, с помощью метода remove(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);
    }
    // ...

С момента версии:
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 из списка слушателей для указанного свойства.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли другой объект этому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удален в будущей версии.
Финализация устарела и может быть удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного времени.

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

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 имеется аналогичный метод TrayIcon.getSize().
Возвращает:
размер значка трея по умолчанию в пикселях
См. также:
  • TrayIcon.setImageAutoSize(boolean)
  • Image
  • TrayIcon.getSize()

addPropertyChangeListener

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

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

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

removePropertyChangeListener

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

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

Параметры:
propertyName — указанное свойство
listener — PropertyChangeListener, который нужно удалить
См. также:
  • addPropertyChangeListener(String, PropertyChangeListener)
  • getPropertyChangeListeners(String)

getPropertyChangeListeners

public PropertyChangeListener[] getPropertyChangeListeners(String propertyName)
Возвращает массив всех слушателей, связанных с указанным свойством.
Параметры:
propertyName — указанное свойство
Возвращает:
все PropertyChangeListener, связанные с указанным свойством; если такие слушатели не добавлены или propertyName равен null либо имеет недопустимое значение, возвращается пустой массив
См. также:
  • addPropertyChangeListener(String, PropertyChangeListener)
  • removePropertyChangeListener(String, PropertyChangeListener)

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, общие сведения, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее дочерних компаний в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее дочерние компании, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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