クラスの配列

  1. 目的
    アプレットで複数の画像ファイルを配列に読み込み、表示します。

  2. 利用法
    1. 画像ファイル
      画像ファイルとしては、 .jpg 型ファイルを利用します。ここでは、4枚の shoubu1.jpg、shoubu2.jpg、shoubu3.jpg、shoubu3.jpg、
      を利用します。

    2. Imageクラスの配列
       Image クラスの配列を宣言します。この実体(中身)は、次の getImage() で作成しますから、 new() を行う必要はありません。Image を int に変更すれば、整数型配列になります。

       Image Images[]=new Image[4];

    3. 複数のファイルを読む
       getImage( ) で、配列を読みますが、ここでは、shoubu1.jpg、shoubu2.jpg、.. ファイル名を文字列を連結して合成しています。ファイル名を合成容易な名前にしておくと、便利です。mt.addImage() はファイルの読みとり確認です。詳細はこちらを参照して下さい。
      for(int i=0;i<3;i++){
           Images[i]=getImage(getCodeBase(),"shoubu"+(i+1)+".jpg" ); 
           mt.addImage(Images[i],i);
       }

    4. 表示
       paint() で、表示位置を横にすらしながら4枚の絵を、同時に表示します。

       g.drawImage(Images[i], 10+80*i, 10, this);

    5. マウス
       ウインドウを作成すると、paint() が呼び出されますが、このとき、画像ファイルの読み込みが完了していないと表示できません。ここでは、マウスをクリックすると再表示するよう、マウスイベントを組み込んでいます。

    6. 応用
       カードゲームやアニメーションなどで、この手法は役に立つでしょう。また、効果音のファイルを配列に読み込んでおけば、必要時にリアルタイムで再生することもできます。

  3. プログラム
    1. プログラム

      import java.awt.*;
      import java.awt.event.MouseEvent;
      import java.applet.*;
      
      
      public class imageArray extends Applet {
      
        Image Images[]=new Image[4];
        MediaTracker mt=new MediaTracker(this);
      
      
        /**アプレットの初期化*/
        public void init() {
      
          for(int i=0;i<3;i++){
               Images[i]=getImage(getCodeBase(),"shoubu"+(i+1)+".jpg" ); 
              mt.addImage(Images[i],i);
          }
          
          this.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mousePressed(MouseEvent e) {
              this_mousePressed(e);
            }
          });
        }
      
          public void paint (Graphics g)
          {
              for(int i=0;i<3;i++){
                  if(mt.checkID(i,true)){ 
                      g.drawImage(Images[i], 10+80*i, 10, this); }
              }
          }
      
          void this_mousePressed(MouseEvent e){
              repaint();
          }
      }

    2. 実行結果
       描画ボタンで画像が表示されます。