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);
}
// ...
- 導入されたバージョン:
- 1.6
- 関連項目:
TrayIcon
-
メソッドのサマリー
修飾子と型メソッド説明void
SystemTray
にTrayIcon
を追加します。void
addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
特定のプロパティのリスナーのリストにPropertyChangeListener
を追加します。getPropertyChangeListeners(String propertyName)
指定されたプロパティに関連付けられているすべてのリスナーの配列を返します。static SystemTray
デスクトップのトレイ領域を表すSystemTray
インスタンスを取得します。TrayIcon[]
このアプリケーションによってトレイに追加されたすべてのアイコンの配列を返します。システム・トレイでトレイ・アイコンが占める領域のサイズ(ピクセル単位)を返します。static boolean
システム・トレイが現在のプラットフォームでサポートされているかどうかを返します。void
SystemTray
から指定されたTrayIcon
を削除します。void
removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
特定のプロパティのリスナー・リストからPropertyChangeListener
を削除します。
-
メソッドの詳細
-
getSystemTray
public static SystemTray getSystemTray()デスクトップのトレイ領域を表すSystemTray
インスタンスを取得します。 アプリケーションごとに同じインスタンスを常に返します。 一部のプラットフォームでは、システム・トレイがサポートされていない場合があります。isSupported()
メソッドを使用すると、システム・トレイがサポートされているかどうかを確認できます。SecurityManagerがインストールされている場合、
SystemTray
インスタンスを取得するには、AWTPermissionaccessSystemTray
が許可されている必要があります。 そうでない場合、このメソッドは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
を参照してください。ノート:
SystemTray
およびTrayIcon
を実装するときは、ポップアップ・メニューとアクション・イベントに異なるジェスチャを割り当てることを強くお薦めします。 両方に1つのジェスチャをオーバーロードすると、混乱が生じ、ユーザーが一方にアクセスできない可能性があります。- 戻り値:
- システム・トレイ・アクセスがサポートされていない場合は
false
。最小限のシステム・トレイ・アクセスがサポートされているが、現在のプラットフォームですべてのシステム・トレイ機能がサポートされている保証がない場合はtrue
を返す - 関連項目:
getSystemTray()
-
add
public void add(TrayIcon trayIcon) throws AWTExceptionSystemTray
にTrayIcon
を追加します。 トレイ・アイコンは、追加するとシステム・トレイで可視状態になります。 アイコンがトレイで表示される順序は指定されません。プラットフォームと実装に依存します。アプリケーションによって追加されたすべてのアイコンが、そのアプリケーションの終了時に
SystemTray
から自動的に削除されます。また、デスクトップのシステム・トレイが使用できなくなったときにも自動的に削除されます。- パラメータ:
trayIcon
- 追加されるTrayIcon
- 例外:
NullPointerException
-trayIcon
がnull
である場合IllegalArgumentException
-TrayIcon
の同じインスタンスが複数回追加された場合AWTException
- デスクトップのシステム・トレイが見つからない場合- 関連項目:
remove(TrayIcon)
,getSystemTray()
,TrayIcon
,Image
-
remove
public void remove(TrayIcon trayIcon)SystemTray
から指定されたTrayIcon
を削除します。アプリケーションによって追加されたすべてのアイコンが、そのアプリケーションの終了時に
SystemTray
から自動的に削除されます。また、デスクトップのシステム・トレイが使用できなくなったときにも自動的に削除されます。trayIcon
がnull
の場合、またはシステム・トレイに追加されなかった場合は、例外はスローされず、何も処理は行われません。- パラメータ:
trayIcon
- 削除するTrayIcon
- 関連項目:
add(TrayIcon)
,TrayIcon
-
getTrayIcons
public TrayIcon[] getTrayIcons()このアプリケーションによってトレイに追加されたすべてのアイコンの配列を返します。 別のアプリケーションによって追加されたアイコンにはアクセスできません。 一部のブラウザは、異なるコード・ベースのアプレットを別のコンテキストに分割し、これらのコンテキストの間に壁を構築します。 このような場合、このコンテキストから追加されたトレイ・アイコンだけが返されます。返される配列は、実際の配列のコピーであり、システム・トレイに影響しない方法で変更できます。
TrayIcon
をSystemTray
から削除するには、remove(TrayIcon)
メソッドを使用してください。- 戻り値:
- このトレイに追加されたすべてのトレイ・アイコンの配列、または追加されたアイコンがない場合は空の配列
- 関連項目:
add(TrayIcon)
,TrayIcon
-
getTrayIconSize
public Dimension getTrayIconSize()システム・トレイでトレイ・アイコンが占める領域のサイズ(ピクセル単位)を返します。 開発者は、このメソッドを使用すると、トレイ・アイコンを作成する前に、トレイ・アイコンのイメージ・プロパティの推奨サイズを取得できます。 便宜のため、類似したメソッドであるTrayIcon.getSize()
がTrayIcon
クラスにも用意されています。- 戻り値:
- トレイ・アイコンのデフォルト・サイズ(ピクセル単位)
- 関連項目:
TrayIcon.setImageAutoSize(boolean)
,Image
,TrayIcon.getSize()
-
addPropertyChangeListener
public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)特定のプロパティのリスナーのリストにPropertyChangeListener
を追加します。 現在サポートされているプロパティは次のとおりです。SystemTrayのプロパティ プロパティ 説明 trayIcons
この SystemTray
のTrayIcon
オブジェクトの配列。 この配列は、getTrayIcons()
メソッドを使用してアクセスされます。 このプロパティは、トレイ・アイコンをシステム・トレイに対して追加(または削除)すると変更されます。 たとえば、システム・トレイがデスクトップで利用不可能になって、トレイ・アイコンが自動的に削除されると、このプロパティは変更されます。systemTray
このプロパティには、システム・トレイが使用可能な場合は SystemTray
インスタンス、それ以外の場合はnull
が格納されます。 このプロパティは、システム・トレイがデスクトップで使用可能または使用不可になると変更されます。 このプロパティは、getSystemTray()
メソッドを使用してアクセスされます。listener
は、このコンテキストでのプロパティの変更だけを待機します。listener
がnull
である場合、例外はスローされず、何も処理は行われません。- パラメータ:
propertyName
- 指定されたプロパティlistener
- 追加されるプロパティ変更リスナー- 関連項目:
removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)
,getPropertyChangeListeners(java.lang.String)
-
removePropertyChangeListener
public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)特定のプロパティのリスナー・リストからPropertyChangeListener
を削除します。PropertyChangeListener
は、このコンテキストからのリスナーである必要があります。propertyName
またはlistener
がnull
または無効の場合、例外はスローされず、何も処理は行われません。- パラメータ:
propertyName
- 指定されたプロパティlistener
- 削除されるPropertyChangeListener- 関連項目:
addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)
,getPropertyChangeListeners(java.lang.String)
-
getPropertyChangeListeners
public PropertyChangeListener[] getPropertyChangeListeners(String propertyName)指定されたプロパティに関連付けられているすべてのリスナーの配列を返します。このコンテキストでのリスナーだけが返されます。
- パラメータ:
propertyName
- 指定されたプロパティ- 戻り値:
- 指定されたプロパティに関連付けられたすべての
PropertyChangeListener
。そのようなリスナーが追加されていないか、propertyName
がnull
または無効の場合は、空の配列が返される - 関連項目:
addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)
,removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)
-