Java SE 6 の AWT からシステムトレイ (タスクトレイ) が利用できるようになりました。
メール着信のお知らせツール (biff) やウィンドウレスで常駐するアプリケーションで
便利な機能です。
Java SE 6 から
システムトレイ
を利用できるようになりました。この機能は Windows, Macintosh, GNOME, KDE など、
デスクトップ用途を前提としたウィンドウマネージャであれば大抵は利用可能です。
ただし twm や CDE のように実用重視のウィンドウシステムでは使用できないものも
あります。
Java のシステムトレイは以下の機能を利用できます。
- アイコンによる状態の通知
- ポップアップメッセージの表示
- ポップアップメニューの使用
- アクションリスナやマウスイベントリスナの追加
Java
// システムトレイが利用できる環境である事を確認
if(! SystemTray.isSupported()){
System.out.println("システムトレイは利用できません");
return;
}
// トレイアイコンの設定
final SystemTray tray = SystemTray.getSystemTray();
final TrayIcon icon = new TrayIcon(image);
icon.setToolTip("SystemTray Sample");
tray.add(icon);
// アイコンへのアクション
icon.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(
null, "アイコンのアクション");
}
});
// ポップアップメニューの設定
PopupMenu popup = new PopupMenu();
popup.add("あいうえお");
popup.add("かきくけこ");
popup.addSeparator();
MenuItem menu = new MenuItem("終了");
menu.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
tray.remove(icon);
System.exit(0);
}
});
popup.add(menu);
icon.setPopupMenu(popup);
// ポップアップメッセージの表示
icon.displayMessage("MOYO Laboratory", "メールが到着しています", MessageType.INFO);