|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjava.awt.SystemTray
public class SystemTray
SystemTray 类表示桌面的系统托盘。在 Microsoft Windows 上,它被称为“任务栏状态区域 (Taskbar Status Area)”,在 Gnome 上,它被称为“通知区域 (Notification Area)”,在 KDE 上,它被成为“系统托盘 (System Tray)”。系统托盘由运行在桌面上的所有应用程序共享。
在某些平台上,可能不存在或不支持系统托盘,在这种情况下,getSystemTray() 将抛出 UnsupportedOperationException。要检查系统托盘是否受支持,可以使用 isSupported()。
SystemTray 可以包含一个或多个 TrayIcon,可以使用 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);
}
// ...
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)
从 SystemTray 中移除指定的 TrayIcon。 |
void |
removePropertyChangeListener(String propertyName,
PropertyChangeListener listener)
从特定属性的侦听器列表中移除 PropertyChangeListener。 |
| 从类 java.lang.Object 继承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| 方法详细信息 |
|---|
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),
AWTPermissionpublic static boolean isSupported()
TrayIcon.setPopupMenu(PopupMenu))或操作事件(请参阅 TrayIcon.addActionListener(ActionListener))。
开发人员不应假定所有系统托盘功能都是受支持的。要保证始终可以访问托盘图标的默认动作,则应将默认动作同时添加到动作侦听器和弹出菜单。有关如何执行此操作的示例,请参阅 example。
注:在实现 SystemTray 和 TrayIcon 时,强烈建议 为弹出菜单和动作事件分配不同的动作。为两种目的重载一个动作时会产生混淆,并可能阻止用户访问它们其中的一个或另一个。
false;如果当前平台支持最小系统托盘访问,但不保证支持所有系统托盘功能,则此方法返回 truegetSystemTray()
public void add(TrayIcon trayIcon)
throws AWTException
TrayIcon 添加到 SystemTray。一旦添加了托盘图标,就可以在系统托盘中看到它。图标在托盘中的显示顺序未指定——它与平台和实现有关。
在应用程序退出时,应用程序添加的所有图标都将自动从 SystemTray 移除,在桌面系统托盘不可用时也一样。
trayIcon - 要添加的 TrayIcon
NullPointerException - 如果 trayIcon 为 null
IllegalArgumentException - 如果多次添加 TrayIcon 的同一实例
AWTException - 如果桌面系统托盘不可用remove(TrayIcon),
getSystemTray(),
TrayIcon,
Imagepublic void remove(TrayIcon trayIcon)
SystemTray 中移除指定的 TrayIcon。
在应用程序退出时,应用程序添加的所有图标都将自动从 SystemTray 移除,在桌面系统托盘不可用时也一样。
如果 trayIcon 为 null 或未添加到系统托盘,则不抛出任何异常且不执行任何动作。
trayIcon - 要移除的 TrayIconadd(TrayIcon),
TrayIconpublic TrayIcon[] getTrayIcons()
返回的数组是实际数组的副本,可以以任意方式修改它,而不会影响系统托盘。要从 SystemTray 中移除 TrayIcon,可以使用 remove(TrayIcon) 方法。
add(TrayIcon),
TrayIconpublic Dimension getTrayIconSize()
TrayIcon 类中有一个类似的方法 TrayIcon.getSize()。
TrayIcon.setImageAutoSize(boolean),
Image,
TrayIcon.getSize()
public void addPropertyChangeListener(String propertyName,
PropertyChangeListener listener)
PropertyChangeListener 添加到特定属性的侦听器列表中。当前支持的属性:
trayIcons
此 SystemTray 的 TrayIcon 数组。通过 getTrayIcons() 可以访问该数组。
在将 TrayIcon 添加到 SystemTray(或从中移除 TrayIcon)时,此属性将发生更改。
例如,当本机 SystemTray 在桌面上不可用时,此属性将被更改
且自动移除 TrayIcon。
listener 仅在此上下文中侦听属性更改。
如果 listener 为 null,则不抛出任何异常且不执行任何动作。
propertyName - 指定的属性listener - 要添加的属性更改侦听器removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener),
getPropertyChangeListeners(java.lang.String)
public void removePropertyChangeListener(String propertyName,
PropertyChangeListener listener)
PropertyChangeListener。
PropertyChangeListener 必须来自于此上下文。
如果 propertyName 或 listener 为 null 或无效,则不抛出任何异常且不执行任何动作。
propertyName - 指定的属性listener - 要移除的 PropertyChangeListeneraddPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener),
getPropertyChangeListeners(java.lang.String)public PropertyChangeListener[] getPropertyChangeListeners(String propertyName)
只返回此上下文中的侦听器。
propertyName - 指定的属性
PropertyChangeListener;如果未添加此类侦听器或者 propertyName 为 null 或无效,则返回空数组addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener),
removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。