犬が歩くアニメーションを描画する

犬のアニメーション

犬が歩くアニメーションを描画します。

前田稔の超初心者のプログラム入門

プログラムの説明

  1. 各自で JPEG ファイルを表示する を参考にして作成して下さい。
    JPEG 画像の代わりに Animation Gif 形式で作成された画像をウインドウに貼り付けるだけで自動的にアニメーションされます。(^_^;)
    Java で表示できる画像は現在の所 Jpeg, Gif, PNG だけですが Animation Gif が使えるのは嬉しいですね。 (●^o^●)
  2. class GifDog は JFrame を継承します。
    Image img; は画像データ(イメージ)の Object です。
        //★ Animation Gif 画像を表示する    前田 稔
        import java.awt.*;
        import javax.swing.*;
    
        class GifDog extends JFrame
        {   static  Image   img;
        
  3. Main では GifDog() を生成するだけです。
        // Main
        public static void main(String args[])
        {   new GifDog();
        }
        
  4. Constructor で画像をロードして初期化します。
  5. paint() メソッドで描画します。

JPanel を継承する

  1. プログラムの作成方法は千差万別です。
    今までは Swing で JFrame を継承していましたが、今回は Swing で JPanel を継承する方法を紹介します。
    実は Java の講座では JPanel を継承していたのですが、JFrame を継承する方がシンプルになるので Java2 で組み直しました。
  2. JPanel を継承して、コンストラクタを使わずに作成してみました。
    メモ帳などでタイプして GifDog.java の名前で保存して下さい。
    //★ Animation Gif 画像を表示する    前田 稔
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    
    class GifDog extends JPanel
    {   static  Image   img;
    
        // Main
        public  static void main(String args[])
        {   GifDog japp = new GifDog();
            img = japp.getToolkit().getImage("dog.gif");
            JFrame jframe = new JFrame("Anime Gif");
            Container c = jframe.getContentPane();
            c.add(japp);
            jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            jframe.setSize(320, 250);
            jframe.setVisible(true);
        }
    
        // Paint Method
        public void paintComponent(Graphics g)
        {   super.paintComponent(g);
            if (img!=null)
            {   g.drawImage(img,50,30,this);
            }
        }
    }
    
  3. Windows の画面に犬の画像が表示されてアニメーションされていたら完成です。
    確認が終わればアニメーションウインドウの「×」をクリックして下さい。

プログラムの説明

  1. class GifDog は JPanel を継承します。
    Image img; は画像データ(イメージ)の Object です。
        import java.awt.*;
        import java.awt.event.*;
        import javax.swing.*;
    
        class GifDog extends JPanel
        {   static  Image   img;
        
  2. main() メソッドです。
    new GifDog() で GifDog class をインスタンス化します。
    getToolkit().getImage("dog.gif") で GIF 画像を入力して Image Object に格納します。
    画像のロードに失敗すると「例外は発生せず null が返されます」の記載があったのですが、間違いのようです。 (^_^;)
    new JFrame("Anime Gif") で JFrame をインスタンス化します。
    JFrame を継承していれば、この処理は不要になります。
    jframe.getContentPane() で Container を取得します。
    c.add(japp) で GifDog class を Container に貼り付けます。
    setDefaultCloseOperation() でフレームの終了を設定します。
    setSize() でウインドウのサイズを設定してます。
    setVisible() で表示します。
        // Main
        public  static void main(String args[])
        {   GifDog japp = new GifDog();
            img = japp.getToolkit().getImage("dog.gif");
            JFrame jframe = new JFrame("Anime Gif");
            Container c = jframe.getContentPane();
            c.add(japp);
            jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            jframe.setSize(320, 250);
            jframe.setVisible(true);
        }
        
  3. 画像を表示するメソッドです。
    img に画像が設定されていること(img!=null)を確かめて、drawImage() で画像を表示します。
    50,30 は画像を表示する座標です。
        // Paint Method
        public void paintComponent(Graphics g)
        {   super.paintComponent(g);
            if (img!=null)
            {   g.drawImage(img,50,30,this);
            }
        }
        

超初心者のプログラム入門(Java2)