Swing/DisableAnimatedGif のバックアップ(No.7)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/DisableAnimatedGif へ行く。
- category: swing folder: DisableAnimatedGif title: JLabelに表示したAnimated Gifのアニメーションを停止する tags: [JLabel, Animation, ImageIcon] author: aterai pubdate: 2013-02-25T00:50:43+09:00 description: JLabelに表示したAnimated GIFのアニメーションを停止します。 image:
概要
JLabel
に表示したAnimated GIF
のアニメーションを停止します。
Screenshot
Advertisement
サンプルコード
JLabel label2 = new JLabel() {
@Override public boolean imageUpdate(Image img, int infoflags, int x, int y, int w, int h) {
if (!isEnabled()) {
infoflags &= ~FRAMEBITS;
}
return super.imageUpdate(img, infoflags, x, y, w, h);
}
};
View in GitHub: Java, Kotlin解説
上記のサンプルでは、JLabel#isEnabled()
がfalse
の場合は、setIcon()
メソッドで設定したAnimated Gif
のアニメーションを停止するなどのテストを行っています。
Default
- デフォルトの
JLabel
では、JLabel#setEnabled(false);
としてもアニメーションは停止しない
- デフォルトの
Override imageUpdate(...)
JLabel#imageUpdate(...)
のinfoflags
からFRAMEBITS
フラグを落とすことでアニメーションを停止JLabel
がリサイズされると?、コマが進んでしまう
setDisabledIcon
- 別途用意した静止画像を使って、
JLabel#setDisabledIcon(...)
を設定 GrayFilter.createDisabledImage(Image)
でアイコンをグレースケール化
- 別途用意した静止画像を使って、
参考リンク
- Duke Images: iconSized
- ImageObserver (Java Platform SE 8)
- ColorConvertOpで画像をグレースケールに変換
- Animated Gifからフレーム画像を抽出する