|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.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)
,
AWTPermission
public static boolean isSupported()
TrayIcon.setPopupMenu(PopupMenu)
)或操作事件(請參閱 TrayIcon.addActionListener(ActionListener)
)。
開發人員不應假定所有系統托盤功能都是受支持的。要保證始終可以存取托盤圖標的預設動作,則應將預設動作同時添加到動作偵聽器和彈出選單。有關如何執行此操作的範例,請參閱 example
。
注:在實作 SystemTray
和 TrayIcon
時,強烈建議 為彈出選單和動作事件分派不同的動作。為兩種目的重載一個動作時會產生混淆,並可能阻止使用者存取它們其中的一個或另一個。
false
;如果當前平臺支持最小系統托盤存取,但不保證支持所有系統托盤功能,則此方法返回 true
getSystemTray()
public void add(TrayIcon trayIcon) throws AWTException
TrayIcon
添加到 SystemTray
。一旦添加了托盤圖標,就可以在系統托盤中看到它。圖標在托盤中的顯示順序未指定——它與平臺和實作有關。
在應用程序退出時,應用程序添加的所有圖標都將自動從 SystemTray
移除,在桌面系統托盤不可用時也一樣。
trayIcon
- 要添加的 TrayIcon
NullPointerException
- 如果 trayIcon
為 null
IllegalArgumentException
- 如果多次添加 TrayIcon
的同一實例
AWTException
- 如果桌面系統托盤不可用remove(TrayIcon)
,
getSystemTray()
,
TrayIcon
,
Image
public void remove(TrayIcon trayIcon)
SystemTray
中移除指定的 TrayIcon
。
在應用程序退出時,應用程序添加的所有圖標都將自動從 SystemTray
移除,在桌面系統托盤不可用時也一樣。
如果 trayIcon
為 null
或未添加到系統托盤,則不拋出任何異常且不執行任何動作。
trayIcon
- 要移除的 TrayIcon
add(TrayIcon)
,
TrayIcon
public TrayIcon[] getTrayIcons()
返回的陣列是實際陣列的副本,可以以任意方式修改它,而不會影響系統托盤。要從 SystemTray
中移除 TrayIcon
,可以使用 remove(TrayIcon)
方法。
add(TrayIcon)
,
TrayIcon
public 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。