Класс SystemTray
public class SystemTray extends Object
SystemTray представляет системный лоток на рабочем столе. В Microsoft Windows он называется "Область статуса панели задач", в Gnome — "Область уведомлений", а в KDE — "Системный лоток". Системный лоток общий для всех приложений, работающих на рабочем столе. На некоторых платформах системный лоток может отсутствовать или не поддерживаться, в этом случае getSystemTray() выбрасывает исключение UnsupportedOperationException. Чтобы определить, поддерживается ли системный лоток, используйте isSupported().
SystemTray может содержать один или несколько 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
- See Also:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
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(), чтобы проверить поддержку системного трея. Если установлен SecurityManager, необходимо предоставить разрешение AWTPermission accessSystemTray, чтобы получить экземпляр SystemTray. В противном случае этот метод выбросит SecurityException.
- Возвращает:
- экземпляр
SystemTray, представляющий область системного трея на рабочем столе - Использует:
-
UnsupportedOperationException- если системный трей не поддерживается текущей платформой -
HeadlessException- еслиGraphicsEnvironment.isHeadless()возвращаетtrue -
SecurityException- если разрешениеaccessSystemTrayне предоставлено - См. также:
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 в системный трей. Значок трея становится видимым в системном трее после добавления. Порядок отображения значков в трее не определен — он зависит от платформы и реализации. Все значки, добавленные приложением, автоматически удаляются из системного трея при завершении работы приложения, а также при недоступности системного трея на рабочем столе.
- Параметры:
-
trayIcon- добавляемыйTrayIcon - Использует:
-
NullPointerException- еслиtrayIconявляетсяnull -
IllegalArgumentException- если один и тот же экземплярTrayIconдобавляется более одного раза -
AWTException- если системный трей на рабочем столе отсутствует - См. также:
remove
public void remove(TrayIcon trayIcon)
TrayIcon из системного трея. Все значки, добавленные приложением, автоматически удаляются из системного трея при завершении работы приложения, а также при недоступности системного трея на рабочем столе.
Если trayIcon является null или не был добавлен в системный трей, исключение не генерируется, и никаких действий не выполняется.
- Параметры:
-
trayIcon- удаляемыйTrayIcon - См. также:
getTrayIcons
public TrayIcon[] getTrayIcons()
Возвращаемый массив — копия фактического массива и может быть изменён любым способом без влияния на системный трей. Для удаления TrayIcon из SystemTray используйте метод remove(TrayIcon).
- Возвращает:
- массив всех значков трея, добавленных в трей, или пустой массив, если значки не добавлены
- См. также:
getTrayIconSize
public Dimension getTrayIconSize()
TrayIcon.getSize() в классе TrayIcon. - Возвращает:
- стандартный размер значка трея в пикселях
- См. также:
addPropertyChangeListener
public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
PropertyChangeListener в список слушателей для указанного свойства. В настоящее время поддерживаются следующие свойства: | Свойство | Описание |
|---|---|
trayIcons |
Массив объектов TrayIcon значка трея. К массиву можно получить доступ через метод 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, 2021, 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/17/docs/api/java.desktop/java/awt/SystemTray.html