• 追加された行はこの色です。
  • 削除された行はこの色です。
#navi(../)
*Wipeアニメーションで画像を表示 [#z57d00bc]
>編集者:[[Terai Atsuhiro>terai]]~
作成日:2004-10-18~
更新日:&lastmod;
---
category: swing
folder: Wipe
title: Wipeアニメーションで画像を表示
tags: [Animation, Image, Timer]
author: aterai
pubdate: 2004-10-18T02:23:59+09:00
description: WipeアニメーションでPNG画像を表示します。
image: https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTWzXTVO0I/AAAAAAAAAp0/SoNEMaoYEoQ/s800/Wipe.png
---
* 概要 [#summary]
`Wipe`アニメーションで`PNG`画像を表示します。

#contents
**概要 [#ta59a8ef]
WipeアニメーションでPNG画像を表示します。
#download(https://lh3.googleusercontent.com/_9Z4BYR88imo/TQTWzXTVO0I/AAAAAAAAAp0/SoNEMaoYEoQ/s800/Wipe.png)

http://terai.xrea.jp/swing/wipe/screenshot.png
* サンプルコード [#sourcecode]
#code(link){{
class WipeImage extends JComponent implements ActionListener {
  private int ww = 0;
  public WipeImage() {
    super();
    setBackground(Color.BLACK);
  }

**サンプルコード [#w7fb70a8]
 class WipeImage extends JComponent implements ActionListener {
   private int ww = 0;
   public WipeImage() {
     super();
     setBackground(Color.black);
   }
   public void paint(Graphics g) {
     g.setColor(getBackground());
     g.fillRect(0, 0, getWidth(), getHeight());
     if(mode) {
       if(ww<((int) (icon.getIconWidth()))) ww=ww+10;
       else animator.stop();
     }else{
       if(ww>0) ww=ww-10;
       else animator.stop();
     }
     g.drawImage(icon.getImage(), 0, 0, 
                 (int) (icon.getIconWidth()),
                 (int) (icon.getIconHeight()), this);
     g.fillRect(ww, 0,
                (int) (icon.getIconWidth()),
                (int) (icon.getIconHeight()));
   }
  @Override protected void paintComponent(Graphics g) {
    super.paintComponent(g);
    int iw = (int) icon.getIconWidth();
    int ih = (int) icon.getIconHeight();
    if (direction) {
      if (ww < iw) {
        ww += 10;
      } else {
        animator.stop();
      }
    } else {
      if (ww > 0) {
        ww -= 10;
      } else {
        animator.stop();
      }
    }
    g.drawImage(icon.getImage(), 0, 0, iw, ih, this);
    g.fillRect(ww, 0, iw - ww, ih);
  }

-[[サンプルを起動>http://terai.xrea.jp/swing/wipe/sample.jnlp]]
-[[jarファイル>http://terai.xrea.jp/swing/wipe/sample.jar]]
-[[ソース>http://terai.xrea.jp/swing/wipe/src.zip]]
  @Override public void actionPerformed(ActionEvent e) {
    repaint();
  }
}
}}

**解説 [#de5d804d]
javax.swing.Timerを使って表示する画像の幅をすこしずつ変更しています。
* 解説 [#explanation]
上記のサンプルでは、`Timer`を使用して位置と幅を変更しながら画像の上に矩形を描画することで`Wipe`アニメーションを実行しています。

//**参考リンク
**コメント [#xe6a52cb]
* 参考リンク [#reference]
- [[Fadeアニメーションで画像を表示>Swing/Fade]]

* コメント [#comment]
#comment
#comment