クラスSystemTray

java.lang.Object
java.awt.SystemTray

public class SystemTray extends Object
SystemTrayクラスは、デスクトップのシステム・トレイを表します。 Microsoft Windowsでは、「タスク・バーのステータス領域」、Gnomeでは「通知スペース」、KDEでは「システム・トレイ」と呼ばれます。 システム・トレイは、デスクトップで実行しているすべてのアプリケーションで共有されます。

一部のプラットフォームでは、システム・トレイが存在しなかったり、サポートされていなかったりすることがあります。この場合、getSystemTray()UnsupportedOperationExceptionをスローします。 システム・トレイがサポートされているかどうかを検出するには、isSupported()を使用します。

SystemTrayには、add(TrayIcon)メソッドを使用してトレイに追加され、remove(TrayIcon)を使用して不要になったときに削除される1つ以上のTrayIconsを含めることができます。 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
関連項目:
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    add(TrayIcon trayIcon)
    SystemTrayTrayIconを追加します。
    void
    特定のプロパティのリスナーのリストにPropertyChangeListenerを追加します。
    指定されたプロパティに関連付けられているすべてのリスナーの配列を返します。
    static SystemTray
    デスクトップのトレイ領域を表すSystemTrayインスタンスを取得します。
    このアプリケーションによってトレイに追加されたすべてのアイコンの配列を返します。
    システム・トレイでトレイ・アイコンが占める領域のサイズ(ピクセル単位)を返します。
    static boolean
    システム・トレイが現在のプラットフォームでサポートされているかどうかを返します。
    void
    remove(TrayIcon trayIcon)
    SystemTrayから指定されたTrayIconを削除します。
    void
    特定のプロパティのリスナー・リストからPropertyChangeListenerを削除します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • メソッドの詳細

    • getSystemTray

      public static SystemTray getSystemTray()
      デスクトップのトレイ領域を表すSystemTrayインスタンスを取得します。 アプリケーションごとに同じインスタンスを常に返します。 一部のプラットフォームでは、システム・トレイがサポートされていない場合があります。 isSupported()メソッドを使用すると、システム・トレイがサポートされているかどうかを確認できます。
      戻り値:
      デスクトップのトレイ領域を表すSystemTrayインスタンス
      スロー:
      UnsupportedOperationException - システム・トレイが現在のプラットフォームでサポートされていない場合
      HeadlessException - GraphicsEnvironment.isHeadless()trueを返す場合
      関連項目:
    • isSupported

      public static boolean isSupported()
      システム・トレイが現在のプラットフォームでサポートされているかどうかを返します。 トレイ・アイコンを表示するだけでなく、システム・トレイの最小限のサポートにはポップアップ・メニュー(TrayIcon.setPopupMenu(PopupMenu)を参照してください)またはアクション・イベント(TrayIcon.addActionListener(ActionListener)を参照してください)が含まれます。

      開発者は、すべてのシステム・トレイ機能がサポートされていると想定しないでください。 トレイ・アイコンのデフォルト・アクションに常にアクセス可能であることを保証するために、デフォルト・アクションをアクション・リスナーとポップアップ・メニューの両方に追加します。 その方法の例については、exampleを参照してください。

      ノート: SystemTrayおよびTrayIconを実装するときは、ポップアップ・メニューとアクション・イベントに異なるジェスチャを割り当てることを強くお薦めします 両方に1つのジェスチャをオーバーロードすると、混乱が生じ、ユーザーが一方にアクセスできない可能性があります。

      戻り値:
      システム・トレイ・アクセスがサポートされていない場合はfalse。最小限のシステム・トレイ・アクセスがサポートされているが、現在のプラットフォームですべてのシステム・トレイ機能がサポートされている保証がない場合はtrueを返す
      関連項目:
    • add

      public void add(TrayIcon trayIcon) throws AWTException
      SystemTrayTrayIconを追加します。 トレイ・アイコンは、追加するとシステム・トレイで可視状態になります。 アイコンがトレイで表示される順序は指定されません。プラットフォームと実装に依存します。

      アプリケーションによって追加されたすべてのアイコンが、そのアプリケーションの終了時にSystemTrayから自動的に削除されます。また、デスクトップのシステム・トレイが使用できなくなったときにも自動的に削除されます。

      パラメータ:
      trayIcon - 追加されるTrayIcon
      スロー:
      NullPointerException - trayIconnullである場合
      IllegalArgumentException - TrayIconの同じインスタンスが複数回追加された場合
      AWTException - デスクトップのシステム・トレイが見つからない場合
      関連項目:
    • remove

      public void remove(TrayIcon trayIcon)
      SystemTrayから指定されたTrayIconを削除します。

      アプリケーションによって追加されたすべてのアイコンが、そのアプリケーションの終了時にSystemTrayから自動的に削除されます。また、デスクトップのシステム・トレイが使用できなくなったときにも自動的に削除されます。

      trayIconnullの場合、またはシステム・トレイに追加されなかった場合は、例外はスローされず、何も処理は行われません。

      パラメータ:
      trayIcon - 削除するTrayIcon
      関連項目:
    • getTrayIcons

      public TrayIcon[] getTrayIcons()
      このアプリケーションによってトレイに追加されたすべてのアイコンの配列を返します。 別のアプリケーションによって追加されたアイコンにはアクセスできません。

      返される配列は、実際の配列のコピーであり、システム・トレイに影響しない方法で変更できます。 TrayIconSystemTrayから削除するには、remove(TrayIcon)メソッドを使用してください。

      戻り値:
      このトレイに追加されたすべてのトレイ・アイコンの配列、または追加されたアイコンがない場合は空の配列
      関連項目:
    • getTrayIconSize

      public Dimension getTrayIconSize()
      システム・トレイでトレイ・アイコンが占める領域のサイズ(ピクセル単位)を返します。 開発者は、トレイ・アイコンを作成する前に、このメソッドを使用して、トレイ・アイコンの優先サイズを取得できます。 便宜のため、類似したメソッドであるTrayIcon.getSize()TrayIconクラスにも用意されています。
      戻り値:
      トレイ・アイコンのデフォルト・サイズ(ピクセル単位)
      関連項目:
    • addPropertyChangeListener

      public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
      特定のプロパティのリスナーのリストにPropertyChangeListenerを追加します。 現在サポートされているプロパティは次のとおりです。
      SystemTrayのプロパティ
      プロパティ 説明
      trayIcons このSystemTrayTrayIconオブジェクトの配列。 この配列は、getTrayIcons()メソッドを使用してアクセスされます。 このプロパティは、トレイ・アイコンをシステム・トレイに対して追加(または削除)すると変更されます。 たとえば、システム・トレイがデスクトップで利用不可能になって、トレイ・アイコンが自動的に削除されると、このプロパティは変更されます。
      systemTray このプロパティには、システム・トレイが使用可能な場合はSystemTrayインスタンス、それ以外の場合はnullが格納されます。 このプロパティは、システム・トレイがデスクトップで使用可能または使用不可になると変更されます。 このプロパティは、getSystemTray()メソッドを使用してアクセスされます。

      listenerは、このコンテキストでのプロパティの変更だけを待機します。

      listenernullである場合、例外はスローされず、何も処理は行われません。

      パラメータ:
      propertyName - 指定されたプロパティ
      listener - 追加されるプロパティ変更リスナー
      関連項目:
    • removePropertyChangeListener

      public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
      特定のプロパティのリスナー・リストからPropertyChangeListenerを削除します。

      PropertyChangeListenerは、このコンテキストからのリスナーである必要があります。

      propertyNameまたはlistenernullまたは無効の場合、例外はスローされず、何も処理は行われません。

      パラメータ:
      propertyName - 指定されたプロパティ
      listener - 削除されるPropertyChangeListener
      関連項目:
    • getPropertyChangeListeners

      public PropertyChangeListener[] getPropertyChangeListeners(String propertyName)
      指定されたプロパティに関連付けられているすべてのリスナーの配列を返します。

      このコンテキストでのリスナーだけが返されます。

      パラメータ:
      propertyName - 指定されたプロパティ
      戻り値:
      指定されたプロパティに関連付けられたすべてのPropertyChangeListener。そのようなリスナーが追加されていないか、propertyNamenullまたは無効の場合は、空の配列が返される
      関連項目: