クリックで矩形の色を変える

下のリンクをクリックすると、このページで作成したアプレットが実行されます。
クリックすると矩形の色が変わります。

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

プログラムの作成

  1. メモ帳などでタイプして clickcolor.java の名前で保存して下さい。
    //★ クリックで矩形の色を変える    前田 稔
    import java.applet.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    
    public class clickcolor extends Applet implements MouseListener
    {   private Color color;
    
        public void init()
        {   addMouseListener(this);
        }
    
        public void paint(Graphics g)
        {   super.paint(g);
            g.setColor(color);
            g.fillRect(20,20,150,150);
        }
    
        public void mouseClicked(MouseEvent e)
        {   int r,g,b;
            Random rand = new Random();
            r= rand.nextInt(256);
            g= rand.nextInt(256);
            b= rand.nextInt(256);
            color= new Color(r,g,b);
            repaint();
        }
    
        public void mousePressed(MouseEvent e){}
        public void mouseReleased(MouseEvent e){}
        public void mouseEntered(MouseEvent e){}
        public void mouseExited(MouseEvent e){}
    }
    
  2. ホームページを表示する HTML ファイルを作成します。
    <html>
      <body>
        <h3>マウスのクリックで色が変わります</h3>
        <applet code=clickcolor.class width=300 height=200>
        </applet>
      </body>
    </html>
    
  3. 最終テストです。
    インターネットブラウザを起動して clickcolor.htm を表示して下さい。
    ページ先頭の画像が表示されてマウスのクリックで色が変わったら完成です。

Java プログラムの説明

  1. Applet のプログラムは java.applet.* を import して下さい。
    Java ウインドウ操作用の API を使用するので java.awt.* をインポートします。
    マウスのクリックを検出するので java.awt.event.* をインポートします。
    乱数を使うので java.util.* をインポートします。
        import java.applet.*;
        import java.awt.*;
        import java.awt.event.*;
        import java.util.*;
        
  2. class clickcolor では extends(クラスの継承) で Applet を指定して下さい。
    マウスのクリックを検出するので MouseListener を implements(実装) します。
    implements の説明は interface(implements)の基礎 を参照して下さい。
    Color color は矩形の色を決める領域です。
        public class clickcolor extends Applet implements MouseListener
        {   private Color color;
        
  3. init() メソッドはアプレットの初期化で、マウスリスナーを組み込みます。
    init() に制御が渡されたときには clickcolor はインスタンス化されているので new は不要です。
        public void init()
        {   addMouseListener(this);
        }
        
  4. paint() メソッドでウインドウに矩形を描画します。
    super.paint(g) を呼び出して画面を初期化(クリア)します。
    mouseClicked() で設定された色(color)を使って矩形を描きます。
        public void paint(Graphics g)
        {   super.paint(g);
            g.setColor(color);
            g.fillRect(20,20,150,150);
        }
        
  5. マウスがクリックされたときの処理です。
    r,g,b に乱数で 0〜255 の値を設定して new Color(r,g,b) で矩形の色を生成します。
    repaint() で矩形を描画するメソッド(paint) を呼び出します。
        public void mouseClicked(MouseEvent e)
        {   int r,g,b;
            Random rand = new Random();
            r= rand.nextInt(256);
            g= rand.nextInt(256);
            b= rand.nextInt(256);
            color= new Color(r,g,b);
            repaint();
        }
        
  6. クリック以外のマウスイベントを処理するメソッドです。
    今回はクリック以外は使わないので形式的に記述するだけです。
            public void mousePressed(MouseEvent e){}
            public void mouseReleased(MouseEvent e){}
            public void mouseEntered(MouseEvent e){}
            public void mouseExited(MouseEvent e){}
        

【演習】

ホームページに複数の円を表示して、マウスのクリックで円の色を変えて下さい。

Java Game Program