Класс SystemTray
- java.lang.Object
-
- java.awt.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);
}
// ...
- С тех пор:
- 1.6
- См. также:
TrayIcon
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
void | add(TrayIcon trayIcon) | Добавляет |
void | addPropertyChangeListener(String propertyName,
PropertyChangeListener listener) | Добавляет |
PropertyChangeListener[] | getPropertyChangeListeners(String propertyName) | Возвращает массив всех слушателей, связанных с указанным свойством. |
static SystemTray | getSystemTray() | Возвращает экземпляр |
TrayIcon[] | getTrayIcons() | Возвращает массив всех значков, добавленных в лоток этим приложением. |
Dimension | getTrayIconSize() | Возвращает размер, в пикселях, занимаемый значком лотка в системном лотке. |
static boolean | isSupported() | Возвращает, поддерживается ли системный лоток на текущей платформе. |
void | remove(TrayIcon trayIcon) | Удаляет указанный |
void | removePropertyChangeListener(String propertyName,
PropertyChangeListener listener) | Удаляет |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Методы
getSystemTray
public static SystemTray getSystemTray()
Получает экземпляр SystemTray, представляющий область системного трея рабочего стола. Этот метод всегда возвращает один и тот же экземпляр на приложение. На некоторых платформах системный трей может быть не поддерживается. Вы можете использовать метод isSupported(), чтобы проверить, поддерживается ли системный трей.
Если установлен SecurityManager, необходимо предоставить разрешение AWTPermission accessSystemTray, чтобы получить экземпляр SystemTray. В противном случае этот метод выбросит SecurityException.
- Возвращает:
- экземпляр
SystemTray, представляющий область системного трея рабочего стола - Исключение:
-
UnsupportedOperationException- если системный трей не поддерживается текущей платформой -
HeadlessException- еслиGraphicsEnvironment.isHeadless()возвращаетtrue -
SecurityException- если разрешениеaccessSystemTrayне предоставлено - См. также:
-
add(TrayIcon),TrayIcon,isSupported(),SecurityManager.checkPermission(java.security.Permission),AWTPermission
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- еслиtrayIconnull -
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()
Возвращает размер, в пикселях, пространства, занимаемого значком трея в системном трее. Разработчики могут использовать этот метод для получения предпочтительного размера для свойства image значка трея до его создания. Для удобства существует аналогичный метод TrayIcon.getSize() в классе TrayIcon.
- Возвращает:
- стандартный размер значка трея в пикселях
- См. также:
-
TrayIcon.setImageAutoSize(boolean),Image,TrayIcon.getSize()
addPropertyChangeListener
public void addPropertyChangeListener(String propertyName,
PropertyChangeListener listener) Добавляет PropertyChangeListener в список слушателей для определённого свойства. В настоящее время поддерживаются следующие свойства:
| Свойство | Описание |
|---|---|
trayIcons |
Массив объектов TrayIcon значка трея. Массив доступен через метод getTrayIcons(). Это свойство изменяется при добавлении или удалении значка трея из системного трея. Например, это свойство изменяется при недоступности системного трея на рабочем столе, когда значки трея автоматически удаляются. |
systemTray |
Это свойство содержит экземпляр SystemTray, когда системный трей доступен, или null в противном случае. Это свойство изменяется, когда системный трей становится доступным или недоступным на рабочем столе. Свойство доступно через метод getSystemTray(). |
listener слушает изменения свойств только в этом контексте.
Если listener null, исключение не выбрасывается, и никаких действий не выполняется.
- Параметры:
-
propertyName- указанное свойство -
listener- слушатель изменений свойств для добавления - См. также:
-
removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener),getPropertyChangeListeners(java.lang.String)
removePropertyChangeListener
public void removePropertyChangeListener(String propertyName,
PropertyChangeListener listener) Удаляет PropertyChangeListener из списка слушателей для определенного свойства.
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связанные с указанным свойством; если такие слушатели не добавлены илиpropertyNamenull, возвращается пустой массив - См. также:
-
addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener),removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)
© 1993, 2020, 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/11/docs/api/java.desktop/java/awt/SystemTray.html