Класс 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 из списка слушателей для указанного свойства. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли другой объект этому объекту. |
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 |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного времени. |
Подробное описание методов
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 равен null, исключение не выбрасывается и никаких действий не выполняется.
- Параметры:
-
propertyName— указанное свойство -
listener— слушатель изменений свойства, который нужно добавить - См. также:
removePropertyChangeListener
public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
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.