マウス・クリックで図形を移動

四角形内をマウスクリックすれば,その位置に円図形が移動し,描画色も変化する。四角形の外をクリックすればメッセージを表示する。WWWプラウザのステータスバーに情報を表示。


Java Appletだ


ソースコード

import java.applet.*;
import java.awt.*;

public class ja08 extends Applet
{
  int n = 0;				//色を変化さすのに使う変数
  int mx,my;				//円図形の描画位置のxy座標
  boolean flag = false;			//mouseのクリック位置を判別する

  public void init(){
    setBackground(Color.white);		//Appletの背景色を白色に設定
  }

  public void paint(Graphics g){
	switch (n){				//mouseクリックの度に色を変化さす条件分岐
	  case 0:
		g.setColor(Color.pink);
		break;
	  case 1:
		g.setColor(Color.blue);
		break;
	  case 2:
		g.setColor(Color.yellow);
		break;
	  case 3:
		g.setColor(Color.green);
		break;
	  case 4:
		g.setColor(Color.red);
		break;
	  case 5:
		g.setColor(Color.black);
		break;
	}

	g.drawRect(60,60,250,160);		//四角形を描画

	if(flag){				//四角形内がクリックされた場合
	  g.fillOval(mx,my,40,40);		//塗り潰された真円の描画
	  showStatus("Red = "+g.getColor().getRed() + "  Green = "+ g.getColor().getGreen()
	  		 + "  Blue = " + g.getColor().getBlue());
				//WWプラウザのステータスバーに,現在指定されているRGBの各値を表示
	}else{					//四角形の外がクリックされた場合
	  g.drawString("四角形の中をクリックしてください!",80,100);
	  showStatus("エラー:四角形内がクリックされていません!");//WWWプラウザのステータスバーにエラーメッセージ
	}
  }

  public boolean mouseDown(Event evt,int x,int y){
	if(60 < x && 310 > x){		//四角形内がクリックされた場合
	  if(60 < y && 220 > y){
         	flag = true;
		mx = x;			//mouseクリック位置の座標を描画位置に指定
		my = y;					  
		n++;			//変数 n を 1増加
		if(n > 5) n = 0;	//n が 6以上になれば 0 に初期化
        	repaint();			//paint()を呼び出し再描画
        	return true;
	  }
    	}
	
	flag = false;			//四角形の外がクリックされた場合
	repaint();				  
	return true;
  }
}

末尾