SystemTray クラスを介してシステム トレイに隠れるアプリケーションを作成しました。正常に動作しますが、プログラムを終了して再度起動すると、アイコンをカーソルでホバーする前にトレイからアイコンが削除されません。これを複数回行うと、複数のアイコンが表示されます。
これは私のプログラムの問題ですか、それとも Windows のバグですか?
このガイドに従って、システム トレイ アイコンを作成しました。
SystemTray クラスを介してシステム トレイに隠れるアプリケーションを作成しました。正常に動作しますが、プログラムを終了して再度起動すると、アイコンをカーソルでホバーする前にトレイからアイコンが削除されません。これを複数回行うと、複数のアイコンが表示されます。
これは私のプログラムの問題ですか、それとも Windows のバグですか?
このガイドに従って、システム トレイ アイコンを作成しました。
トレイ アイコンを作成したアプリケーションが終了しても、Windows はトレイ アイコンを自動的に削除しません。ユーザーがマウスでホバーし、所有プロセスがもう存在しないことに気付いた場合にのみそうします。
アイコンがすぐに削除されるようにするにはsystemTray.remove(yourIcon)
、プログラムの終了時に呼び出す必要があります。
add(java.awt.TrayIcon)
システム トレイには、メソッドを使用してトレイに追加される 1 つまたは複数のトレイ アイコンが含まれています。remove(java.awt.TrayIcon)
これらは、メソッドで不要になったときに削除できます。