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