public class SystemTray extends Object
SystemTrayクラスは、デスクトップのシステム・トレイを表します。Microsoft Windowsでは、「タスク・バーのステータス領域」、Gnomeでは「通知スペース」、KDEでは「システム・トレイ」と呼ばれます。システム・トレイは、デスクトップで実行しているすべてのアプリケーションで共有されます。
一部のプラットフォームでは、システム・トレイが存在しなかったり、サポートされていなかったりすることがあります。この場合、getSystemTray()はUnsupportedOperationExceptionをスローします。システム・トレイがサポートされているかどうかを検出するには、isSupported()を使用します。
SystemTrayには、1つ以上のTrayIconsを格納できます。TrayIconは、add(java.awt.TrayIcon)メソッドを使用してトレイに追加し、不要になったらremove(java.awt.TrayIcon)メソッドを使用して削除します。TrayIconは、イメージ、ポップアップ・メニューおよび関連するリスナーのセットで構成されます。詳細は、TrayIconクラスを参照してください。
各Javaアプリケーションには、SystemTrayインスタンスが1つあり、アプリケーションは実行中にデスクトップのシステム・トレイとやり取りすることができます。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)
SystemTrayにTrayIconを追加します。 |
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を削除します。 |
public static SystemTray getSystemTray()
SystemTrayインスタンスを取得します。アプリケーションごとに同じインスタンスを常に返します。一部のプラットフォームでは、システム・トレイがサポートされていない場合があります。isSupported()メソッドを使用すると、システム・トレイがサポートされているかどうかを確認できます。
SecurityManagerがインストールされている場合、SystemTrayインスタンスを取得するには、AWTPermission accessSystemTrayが許可されている必要があります。そうでない場合、このメソッドは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を実装するときは、ポップアップ・メニューとアクション・イベントに異なるジェスチャを割り当てることを強くお薦めします。両方に1つのジェスチャをオーバーロードすると、混乱が生じ、ユーザーが一方にアクセスできない可能性があります。
false。最小限のシステム・トレイ・アクセスがサポートされているが、現在のプラットフォームですべてのシステム・トレイ機能がサポートされている保証がない場合はtrueを返すgetSystemTray()public void add(TrayIcon trayIcon) throws AWTException
SystemTrayにTrayIconを追加します。トレイ・アイコンは、追加するとシステム・トレイで可視状態になります。アイコンがトレイで表示される順序は指定されません。プラットフォームと実装に依存します。
アプリケーションによって追加されたすべてのアイコンが、そのアプリケーションの終了時にSystemTrayから自動的に削除されます。また、デスクトップのシステム・トレイが使用できなくなったときにも自動的に削除されます。
trayIcon - 追加されるTrayIconNullPointerException - 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()
返される配列は、実際の配列のコピーであり、システム・トレイに影響しない方法で変更できます。TrayIconをSystemTrayから削除するには、remove(TrayIcon)メソッドを使用してください。
add(TrayIcon), TrayIconpublic Dimension getTrayIconSize()
TrayIcon.getSize()がTrayIconクラスにも用意されています。TrayIcon.setImageAutoSize(boolean), Image, TrayIcon.getSize()public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
PropertyChangeListenerを追加します。現在サポートされているプロパティは次のとおりです。
| プロパティ | 説明 |
|---|---|
trayIcons |
このSystemTrayのTrayIconオブジェクトの配列。この配列は、getTrayIcons()メソッドを使用してアクセスされます。このプロパティは、トレイ・アイコンをシステム・トレイに対して追加(または削除)すると変更されます。 たとえば、システム・トレイがデスクトップで利用不可能になって、トレイ・アイコンが自動的に削除されると、 このプロパティは変更されます。 |
systemTray |
このプロパティには、システム・トレイが使用可能な場合はSystemTrayインスタンス、それ以外の場合はnullが格納されます。このプロパティは、システム・トレイがデスクトップで使用可能または使用不可になると変更されます。 このプロパティは、 getSystemTray()メソッドを使用してアクセスされます。 |
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) バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.