JavaTM 2 Platform
Standard Ed. 6

java.awt
類別 SystemTray

java.lang.Object
  繼承者 java.awt.SystemTray

public class SystemTray
extends Object

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);
     }
     // ...
 

從以下版本開始:
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)
          從 SystemTray 中移除指定的 TrayIcon
 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()
獲取表示桌面托盤區的 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

:在實作 SystemTrayTrayIcon 時,強烈建議 為彈出選單和動作事件分派不同的動作。為兩種目的重載一個動作時會產生混淆,並可能阻止使用者存取它們其中的一個或另一個。

返回:
如果不支持系統托盤存取,則返回 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)
SystemTray 中移除指定的 TrayIcon

在應用程序退出時,應用程序添加的所有圖標都將自動從 SystemTray 移除,在桌面系統托盤不可用時也一樣。

如果 trayIconnull 或未添加到系統托盤,則不拋出任何異常且不執行任何動作。

參數:
trayIcon - 要移除的 TrayIcon
另請參見:
add(TrayIcon), TrayIcon

getTrayIcons

public TrayIcon[] getTrayIcons()
返回由此應用程序添加到托盤中的所有圖標的陣列。使用者無法存取由另一個應用程序添加的圖標。有些瀏覽器將使用不同程式碼基的 applet 劃分為單獨的上下文,並在這些上下文之間建牆分隔。在這種情形下,只返回從此上下文中添加的托盤圖標。

返回的陣列是實際陣列的副本,可以以任意方式修改它,而不會影響系統托盤。要從 SystemTray 中移除 TrayIcon,可以使用 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 添加到特定屬性的偵聽器列表中。當前支持的屬性:

listener 僅在此上下文中偵聽屬性更改。

如果 listenernull,則不拋出任何異常且不執行任何動作。

參數:
propertyName - 指定的屬性
listener - 要添加的屬性更改偵聽器
另請參見:
removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener), getPropertyChangeListeners(java.lang.String)

removePropertyChangeListener

public void removePropertyChangeListener(String propertyName,
                                         PropertyChangeListener listener)
從特定屬性的偵聽器列表中移除 PropertyChangeListener

PropertyChangeListener 必須來自於此上下文。

如果 propertyNamelistenernull 或無效,則不拋出任何異常且不執行任何動作。

參數:
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)

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only