ystemTray
类表示桌面的系统托盘。在 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
由图像、弹出菜单和一组相关侦听器组成。
每个 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); } // ...TrayIcon
对象表示可以添加到系统托盘
的托盘图标。TrayIcon
可以包含工具提示(文本)、图像、弹出菜单和一组与之关联的侦听器。
TrayIcon
可以生成各种MouseEvent
,并支持添加相应的侦听器,以接收这些事件的通知。TrayIcon
可以自己处理一些事件。例如,默认情况下,在TrayIcon
上单击鼠标右键时,它将显示指定的弹出菜单。当鼠标悬停到TrayIcon
上时,它将显示工具提示。注:在将
MouseEvent
指派给它的注册侦听器时,其component
属性将被设置为null
。(请参阅ComponentEvent.getComponent()
);source
属性将被设置为此TrayIcon
(请参阅EventObject.getSource()
)。注: 行为良好的
TrayIcon
实现将分配不同的动作来显示弹出菜单并选择托盘图标。
TrayIcon
可以生成一个ActionEvent
。在某些平台上,当用户使用鼠标或键盘选择托盘图标时,会出现这种情况。如果已经安装了 SecurityManager,则必须授予 AWTPermission
accessSystemTray
才能创建TrayIcon
。否则,构造方法将抛出 SecurityException。