Feb 20, 2006
SystemTray にチャレンジ
SystemTray とは
Mustang では Windows のタスクバーステータスエリアにアイコンを表示する機能が追加されたらしい。 わんこ日記さんの[Java]What's cool in AWT on Java SE 6 (Mustang)で紹介されていた。 これは面白そうなので早速チャレンジ。
- API Document - Class SystemTray
- http://java.sun.com/javase/6/docs/api/java/awt/SystemTray.html
サンプルコード
JDK 6.0beta で試してみたところ、非常に簡単に実現できた。
package jp.in_vitro.codelets.awt;
import java.awt.AWTException;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.logging.Logger;
import javax.swing.ImageIcon;
public class Codelet {
public static void main(final String... args) throws AWTException,
InterruptedException {
Codelet me = new Codelet();
me.execute();
}
public Codelet() {
super();
}
public void execute() throws AWTException, InterruptedException {
if (SystemTray.isSupported()) {
// create PopupMenu
PopupMenu popupMenu = new PopupMenu();
MenuItem exitMenuItem = new MenuItem();
exitMenuItem.setLabel("Exit");
exitMenuItem.addActionListener(new ExitMenuItemActionListener());
popupMenu.add(exitMenuItem);
// create TrayIcon
ImageIcon image = new ImageIcon(this.getClass().getResource(
"/trayicon.jpg"));
TrayIcon icon = new TrayIcon(image.getImage());
icon.setPopupMenu(popupMenu);
// enable TrayIcon
SystemTray tray = SystemTray.getSystemTray();
tray.add(icon);
} else {
Logger.global.info("SystemTray is not supported.");
}
}
protected static class ExitMenuItemActionListener implements ActionListener {
public void actionPerformed(final ActionEvent evt) {
System.exit(0);
}
}
}
![[表示されたトレイアイコン]](/blog/entries/Mustang/20060220_01/systemtray_01.jpg)
表示されたトレイアイコン
![[ポップアップメニュー]](/blog/entries/Mustang/20060220_01/systemtray_02.jpg)
ポップアップメニュー
TrackBack ping me at
http://www.in-vitro.jp/blog/index.cgi/Mustang/20060220_01.trackback
writeback message: Ready to post a comment.
