Класс 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
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
add |
Добавляет TrayIcon в SystemTray. |
void |
addPropertyChangeListener |
Добавляет PropertyChangeListener в список прослушивателей указанного свойства. |
PropertyChangeListener[] |
getPropertyChangeListeners |
Возвращает массив всех прослушивателей, связанных с указанным свойством. |
static SystemTray |
getSystemTray() |
Возвращает экземпляр SystemTray, представляющий область уведомлений рабочего стола. |
TrayIcon[] |
getTrayIcons() |
Возвращает массив всех значков, добавленных в область уведомлений этим приложением. |
Dimension |
getTrayIconSize() |
Возвращает размер в пикселях области, которую значок будет занимать в системной области уведомлений. |
static boolean |
isSupported() |
Возвращает сведения о том, поддерживается ли системная область уведомлений на текущей платформе. |
void |
remove |
Удаляет указанный TrayIcon из SystemTray. |
void |
removePropertyChangeListener |
Удаляет PropertyChangeListener из списка прослушивателей указанного свойства. |
Подробное описание методов
getSystemTray
public static SystemTray getSystemTray()
SystemTray, представляющий область уведомлений рабочего стола. Для каждого приложения всегда возвращается один и тот же экземпляр. На некоторых платформах системная область уведомлений может не поддерживаться. Чтобы проверить, поддерживается ли системная область уведомлений, можно воспользоваться методом isSupported().- Возвращает:
- экземпляр
SystemTray, представляющий область уведомлений рабочего стола - Выбрасывает:
-
UnsupportedOperationException— если системная область уведомлений не поддерживается текущей платформой -
HeadlessException— еслиGraphicsEnvironment.isHeadless()возвращаетtrue - См. также:
isSupported
public static boolean isSupported()
TrayIcon.setPopupMenu(PopupMenu)) или событие действия (см. TrayIcon.addActionListener(ActionListener)). Разработчикам не следует предполагать, что поддерживаются все функции системной области уведомлений. Чтобы гарантировать постоянную доступность действия по умолчанию для значка, добавьте это действие и в прослушиватель действий, и во всплывающее меню. Пример см. в описании класса example.
Примечание: при реализации SystemTray и TrayIcon настоятельно рекомендуется назначать разные жесты для всплывающего меню и события действия. Использование одного жеста для обеих целей сбивает с толку и может помешать пользователю получить доступ к одной из этих функций.
- Возвращает:
-
false, если доступ к системной области уведомлений не поддерживается; метод возвращаетtrue, если поддерживается минимальный доступ к системной области уведомлений, однако это не гарантирует поддержку всех её функций на текущей платформе - См. также:
add
public void add(TrayIcon trayIcon) throws AWTException
TrayIcon в SystemTray. После добавления значок становится видимым в системной области уведомлений. Порядок отображения значков в области уведомлений не определён и зависит от платформы и реализации. Все значки, добавленные приложением, автоматически удаляются из SystemTray при завершении приложения, а также когда системная область уведомлений рабочего стола становится недоступной.
- Параметры:
-
trayIcon— добавляемыйTrayIcon - Выбрасывает:
-
NullPointerException— еслиtrayIconимеет значениеnull -
IllegalArgumentException— если один и тот же экземплярTrayIconдобавляется более одного раза -
AWTException— если системная область уведомлений рабочего стола отсутствует - См. также:
remove
public void remove(TrayIcon trayIcon)
TrayIcon из SystemTray. Все значки, добавленные приложением, автоматически удаляются из SystemTray при завершении приложения, а также когда системная область уведомлений рабочего стола становится недоступной.
Если trayIcon имеет значение null или не был добавлен в системную область уведомлений, исключение не выбрасывается и никаких действий не выполняется.
- Параметры:
-
trayIcon— удаляемыйTrayIcon - См. также:
getTrayIcons
public TrayIcon[] getTrayIcons()
Возвращаемый массив является копией исходного массива и может быть изменён любым способом без влияния на системную область уведомлений. Чтобы удалить TrayIcon из SystemTray, используйте метод remove(TrayIcon).
- Возвращает:
- массив всех значков, добавленных в эту область уведомлений, или пустой массив, если ни одного значка не добавлено
- См. также:
getTrayIconSize
public Dimension getTrayIconSize()
TrayIcon имеется аналогичный метод TrayIcon.getSize().- Возвращает:
- размер значка по умолчанию в пикселях
- См. также:
addPropertyChangeListener
public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
PropertyChangeListener в список прослушивателей указанного свойства. В настоящее время поддерживаются следующие свойства: | Свойство | Описание |
|---|---|
trayIcons |
Массив объектов TrayIcon для SystemTray. Доступ к массиву осуществляется с помощью метода getTrayIcons(). Это свойство изменяется при добавлении значка в системную область уведомлений или удалении значка из неё. Например, свойство изменяется, когда системная область уведомлений рабочего стола становится недоступной и значки автоматически удаляются. |
systemTray |
Это свойство содержит экземпляр SystemTray, если системная область уведомлений доступна, и null в противном случае. Свойство изменяется, когда системная область уведомлений рабочего стола становится доступной или недоступной. Доступ к свойству осуществляется с помощью метода getSystemTray(). |
listener отслеживает изменения свойств только в этом контексте.
Если listener имеет значение null, исключение не выбрасывается и никаких действий не выполняется.
- Параметры:
-
propertyName— указанное свойство -
listener— добавляемый прослушиватель изменений свойства - См. также:
removePropertyChangeListener
public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
PropertyChangeListener из списка прослушивателей указанного свойства. PropertyChangeListener должен относиться к этому контексту.
Если propertyName или listener имеет значение null либо недопустимо, исключение не выбрасывается и никаких действий не выполняется.
- Параметры:
-
propertyName— указанное свойство -
listener— удаляемый PropertyChangeListener - См. также:
getPropertyChangeListeners
public PropertyChangeListener[] getPropertyChangeListeners(String propertyName)
Возвращаются только прослушиватели из этого контекста.
- Параметры:
-
propertyName— указанное свойство - Возвращает:
- все
PropertyChangeListener, связанные с указанным свойством; если такие прослушиватели не добавлены либоpropertyNameимеет значениеnullили недопустимо, возвращается пустой массив - См. также:
© 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://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/java/awt/SystemTray.html