Spec-Zone.ru › OpenJDK 8

Класс 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);
     }
     // ...
C момента:
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 из списка слушателей для определённого свойства.

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Методы

getSystemTray

public static SystemTray getSystemTray()

Получает экземпляр, представляющий область трея рабочего стола. Этот метод всегда возвращает один и тот же экземпляр для каждого приложения. На некоторых платформах трей системы может быть не поддерживается. Вы можете использовать метод isSupported() для проверки поддержки трея системы.

Если установлен SecurityManager, необходимо предоставить разрешение AWTPermission accessSystemTray для получения экземпляра SystemTray. В противном случае этот метод выбросит SecurityException.

Возвращает:
экземпляр, представляющий область трея рабочего стола
Исключение:
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 - если 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()

Возвращает размер, в пикселях, занимаемый значком трея в трее системы. Разработчики могут использовать этот метод для получения предпочтительного размера свойства 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 связанные с указанным свойством; если такие слушатели не были добавлены, или если propertyName является null или недействительным, возвращается пустой массив
См. также:
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.

Spec-Zone.ru

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