TrayIconの使用中にJFrameを最小化したとき、タスクバーボタンを非表示にする
Total: 6350, Today: 1, Yesterday: 1
Posted by aterai at
Last-modified:
Summary
TrayIconを使用中にJFrameを最小化した場合に、そのアプリケーションのタスクバーボタンを表示するかどうかを切り替えます。
Screenshot

Advertisement
Source Code Examples
frame.addWindowListener(new WindowAdapter() {
@Override public void windowIconified(WindowEvent e) {
if (check.isSelected()) {
e.getWindow().dispose();
}
}
});
// or
// frame.addWindowStateListener(new WindowStateListener() {
// @Override public void windowStateChanged(WindowEvent e) {
// if (check.isSelected() && e.getNewState() == Frame.ICONIFIED) {
// e.getWindow().dispose();
// }
// }
// });
View in GitHub: Java, KotlinDescription
WindowListener#windowIconified(...)でJFrameが最小化(アイコン化)された場合、Window#dispose()でネイティブリソースを開放してタスクバーボタンを非表示に変更- タスクバーボタン: 上記の
Windows 7でのスクリーンショットでは左下にあるサイズ40x40のアイコンが表示されているボタン frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);を設定している場合、Java仮想マシン(JVM)内で最後の表示可能なウィンドウをdispose()すると通常はJVMも終了するが、このサンプルではSystemTrayにTrayIconが残っているのでJVMは終了しない- この後
tray.remove(icon);でTrayIconをSystemTrayから削除するとJVMは終了する