Java 6のデスクトップアプリケーション

Java 6ではデスクトップアプリケーションのための機能が強化されてるんだ。これって Project Looking Glass の影響かな。

  • ファイルのアクセス権限/実行権限の管理
  • ドライブの容量取得
  • スプラッシュスクリーンの自動表示
  • システムトレイにアイコンとメニュー表示
  • ウインドウ単位のダブルバッファリング
  • JDBC 4.0とApache Derbyのバンドル

スプラッシュスクリーンの表示とかは MRJ にはあったので今さらな感じもするけれど、システムトレイにメニューが追加できるのは大きいと思った。

public void TraySample()
{
	BufferedImage icon = getImage("/images/naruto16.png");
	PopupMenu popupMenu = new PopupMenu();
	TrayIcon tray = new TrayIcon(icon, "LCHat tray icon", popupMenu);
	SystemTray.getSystemTray().add(tray);
}

さっそく試してみたら、Mac OS Xだと右上のメニューバーに表示された。Dock に表示されるかと思ってたけど違ったみたい。
Apache Derby のバンドルも歓迎するところ。Mac OS X Tiger から SQLite がバンドルされて Cocoa アプリケーションはDBが当たり前になっていたので Java アプリケーションも遅れを取らずにいきたい。アプリケーションのユーザにDBサーバのインストールを要求するのは無理があるのでデフォルトでインストールされているのは大きいと思う。
ウインドウ単位のダブルバッファリングはMac OS X上で最大限効果を上げてくれると思う。GPUを一番うまく使っているOSだもんね。これについても何か試してみたいな。

Java 6では見送られた機能も多いので、これからもウォッチしていきたい。