Swing/AnimatedTrayIcon のバックアップの現在との差分(No.2)
TITLE:TrayIconのアニメーション
TrayIconのアニメーション
編集者:Terai Atsuhiro~
作成日:2007-02-05
更新日:2024-04-12 (金) 14:50:28
概要
SystemTray
に追加したトレイアイコンをアニメーションさせます。
Screenshot
Advertisement
概要
SystemTrayに追加したアイコン(JDK 6 以上)をア二メーションさせます。サンプルコード
#spanend
#spanadd
TrayIcon icon = new TrayIcon(imglist[0], "TRAY", popup);
#spanend
#spanadd
animator = new Timer(100, new ActionListener() {
#spanend
private int idx = 0;
@Override public void actionPerformed(ActionEvent e) {
icon.setImage(imglist[idx]);
idx = (idx + 1) % imglist.length;
}
#spanadd
});
#spanend
#spanadd
View in GitHub: Java, Kotlin#screenshot
解説
-
16x16
の画像を3
パターン用意 -
JDK 6
で追加されたTrayIcon#setImage(Image)
メソッドを使用して、この3
パターンの画像を切り替えることでトレイアイコンのアニメーションを実行
サンプルコード
final TrayIcon icon = new TrayIcon(imglist[0], "TRAY", popup); animator = new javax.swing.Timer(100, new ActionListener() { private int idx = 0; public void actionPerformed(ActionEvent e) { icon.setImage(imglist[idx]); idx = (idx<imglist.length-1)?idx+1:0; } });
参考リンク
- &jar;
- &zip;
コメント
-
animated gif
が使用できればより簡単だと思うが、作ったGif
が悪いのか、環境のせいなのか、残像がでてしまう。 -- aterai- メモ: [JDK-6453582] Animation gif too fast - Java Bug System -- aterai
- 上のバグ?でウェイトが効かずに残像が残っていたのではなく、前のコマがそのまま残して透過色(背景色)でクリアしないタイプ?のアニメ
GIF
になっていた。Giamを使って、全コマの消去方法を「背景色で塗りつぶす」に変更したファイルを使用すると、正常に描画されるようになった。 -- aterai