5

赤い十字が押されたときにシステム トレイに縮小する Java アプリケーションがあります。

これが発生するたびに、アプリケーションがまだシステム トレイで実行中であることをユーザーに通知するメッセージを表示します。

そのためのコードは次のとおりです。

...

    @Override
    public void windowClosing(WindowEvent e) {
       try {
            tray.add(trayIcon);
            trayIcon.displayMessage("", "The application has been reduced
                 in the system tray, to stop it, press the \"Quit\" button", 
                 TrayIcon.MessageType.WARNING);
            setVisible(false);
        } catch (AWTException ex) {
            System.out.println("unable to add to tray");
        }
    }
...

しばらくの間、ユーザーがクリックするとメッセージは消えます。

何もしなくても数秒後にメッセージがフェードアウトするようにカウンターを設定したいと思います。

誰かがそれを行うための良い方法を知っていますか?私はそのための既存の方法を見つけることができないようです.

編集

質問を修正する必要があります。実際、もう少しテストした後、たとえば 7 ~ 8 秒後に自動的にフェードアウトしますが、少し長すぎることがわかりました。また、ユーザーがアクション (マウスの移動またはキーボードでの入力) を実行している場合にのみ消えます。

したがって、新しい質問は次のようになります。Java アプリケーションを構成することでフェードアウト時間を短縮し、メッセージの動作を変更する方法はありますか、それとも Windows に固有のものですか?

4

1 に答える 1

3

したがって、新しい質問は次のようになります。Java アプリケーションを構成してフェードアウト時間を短縮する方法はありますか、それとも Windows 固有のものですか?


  • プログラムで左下に配置された独自の Traslucent JDialog (透過性も可能) を作成できます。フェードアウトは Swing Timer から呼び出されます。
于 2013-04-19T11:23:36.970 に答える