- 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 imageImage
image =Toolkit.getDefaultToolkit().getImage
(...); // create a action listener to listen for default action executed on the tray iconActionListener
listener = newActionListener
() { public voidactionPerformed
(ActionEvent
e) { // execute default action of the application // ... } }; // create a popup menuPopupMenu
popup = newPopupMenu
(); // create menu item for the default action MenuItem defaultItem = new MenuItem(...); defaultItem.addActionListener(listener); popup.add(defaultItem); /// ... add other items // construct a TrayIcon trayIcon = newTrayIcon
(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)
添加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
。
-
-
-
方法详细信息
-
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
- 如果trayIcon
是null
-
IllegalArgumentException
- 如果TrayIcon
添加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()
返回此应用程序添加到托盘的所有图标的数组。 您无法访问其他应用程序添加的图标。 有些浏览器将不同代码库中的applet分成不同的上下文,并在这些上下文之间建立隔阂。 在这种情况下,仅返回从此上下文添加的托盘图标。返回的数组是实际数组的副本,可以以任何方式进行修改,而不会影响系统托盘。 要从
TrayIcon
删除SystemTray
,请使用remove(TrayIcon)
方法。- 结果
- 添加到此托盘的所有托盘图标的数组,如果没有添加任何托盘图标,则为空数组
- 另请参见:
-
add(TrayIcon)
,TrayIcon
-
getTrayIconSize
public Dimension getTrayIconSize()
返回托盘图标在系统托盘中占用的空间的大小(以像素为单位)。 开发人员可以使用此方法在托盘图标创建之前获取图像属性的首选大小。 为方便起见,在TrayIcon
类中有类似的方法TrayIcon.getSize()
。- 结果
- 托盘图标的默认大小(以像素为单位)
- 另请参见:
-
TrayIcon.setImageAutoSize(boolean)
,Image
,TrayIcon.getSize()
-
addPropertyChangeListener
public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
将PropertyChangeListener
添加到特定属性的侦听器列表中。 目前支持以下属性: SystemTray properties Property DescriptiontrayIcons
TheSystemTray
's array ofTrayIcon
objects. The array is accessed via thegetTrayIcons()
method. This property is changed when a tray icon is added to (or removed from) the system tray. For example, this property is changed when the system tray becomes unavailable on the desktop and the tray icons are automatically removed.systemTray
This property containsSystemTray
instance when the system tray is available ornull
otherwise. This property is changed when the system tray becomes available or unavailable on the desktop. The property is accessed by thegetSystemTray()
method.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)
-
-