|
JavaTM 2 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 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。