 // 画像の色を変える [Car2.java](JDK 1.0.2)
 import java.applet.Applet;
 import java.awt.*;
 import java.awt.image.*;  // PixelGrabberを使用
 //!import java.awt.event.*;  // JDK 1.1
 //!public class Car2 extends Applet 
 //!       implements MouseListener {  // JDK 1.1
 public class Car2 extends Applet {    //!
    PixelGrabber pixelG;
    Image img;
    int [] org;       // オリジナルの配列
    int [] change;    // 変更後の配列
    int w,h,ww,hh;
    Color [] col={Color.red,Color.green,Color.blue};
  public void init() {  // アプレットロード時の初期化メソッド
     MediaTracker mediaT= new MediaTracker(this);
     img=getImage(getDocumentBase(),"car.gif"); // 画像の読み込み
     mediaT.addImage(img,0);
     try {
        mediaT.waitForAll();
     } catch ( InterruptedException e) { }
     w=img.getWidth(null);   // 画像の横の大きさ
     h=img.getHeight(null);  // 画像の縦の大きさ
     org   =new int[w*h];    //(a) 配列の確保(オリジナル)
     change=new int[w*h];    //(a) 配列の確保(変更後)
     pixelG=new PixelGrabber(img,0,0,w,h,org,0,w); //(b)
     try{
        pixelG.grabPixels();
     } catch ( InterruptedException e) { }
  //!   addMouseListener(this);             // JDK 1.1
  } // end init
  //!//============= JDK 1.1 イベント処理(マウス) =============
  //!public void mousePressed(MouseEvent e) { // ボタンを押す
  //!   int x=e.getX()/(ww/3); //(c)マウスのボタンを押したx位置
  //!   int c=0xffff0000;      //(d) 赤
  //!   if      (x == 1) { c=0xff00ff00; }  //(d) 緑
  //!   else if (x == 2) { c=0xff0000ff; }  //(d) 青
  //!   for (int i=0; i<w*h; i++) {         //(e)
  //!      if (org[i] == 0xffff0000) change[i]=c;
  //!                           else change[i]=org[i];
  //!   }
  //!   img=createImage(
  //!       new MemoryImageSource(w,h,change,0,w)); //(f)
  //!   repaint();
  //!} //end mousePressed
  //!public void mouseReleased(MouseEvent e) { } // JDK 1.1
  //!public void mouseClicked (MouseEvent e) { } // JDK 1.1
  //!public void mouseEntered (MouseEvent e) { } // JDK 1.1
  //!public void mouseExited  (MouseEvent e) { } // JDK 1.1
  //============= JDK 1.0.2 イベント処理(マウス) =============
   public boolean mouseDown(Event e,int x,int y) { //!マウスの処理
      int xx=x/(ww/3);       //!(c)マウスのボタンを押したx位置
      int c=0xffff0000;      //!(d) 赤
      if      (xx == 1) { c=0xff00ff00; }  //!(d) 緑
      else if (xx == 2) { c=0xff0000ff; }  //!(d) 青
      for (int i=0; i<w*h; i++) {          //!(e)
         if (org[i] == 0xffff0000) change[i]=c;      //!
                              else change[i]=org[i]; //!
      }                                              //!
      img=createImage(                               //!
         new MemoryImageSource(w,h,change,0,w));     //!(f)
      repaint();       //!
      return true;     //!
   } //end mouseDown   //!
  //================== paintメソッド =======================
  public void paint(Graphics g) {
  //!   ww=getSize().width;   // ウィンドウの横の大きさ
  //!   hh=getSize().height;  // ウィンドウの縦の大きさ
     ww=size().width;         //!ウィンドウの横の大きさ
     hh=size().height;        //!ウィンドウの縦の大きさ
     for (int i=0; i<3; i++) {
        g.setColor(col[i]);  // 色の設定
        g.fillRect(ww/3*i,hh-20,ww/3,20);  // 長方形の作成
     }
     g.drawImage(img,10,10,this); //(g) 画像の出力
  } //end paint
 } //end Car2
