マウスで絵を描こう
import java.applet.Applet;
import java.awt.*;
public class test_10 extends Applet
{
// マウスの移動前の座標保存用
int oldx,oldy;
// 現在処理中の色番号
int cnt =0;
// 色の変化用
int iro_r=0,iro_g=0,iro_b=0;
// このクラスのメソッドが共通で使うグラフィック描画用のオブジェクト
// 絵を描画するキャンバスみたいな物かな、、、
Graphics g;
public void init()
{
// 描画できるように準備
g=getGraphics();
}
// マウスのボタンが押されたときに実行されるメソッド
public boolean mouseDown(Event e,int x,int y)
{
// ボタンが押されたときの座標を保存
oldx=x;
oldy=y;
// ボタンが押される毎にカウントを進める
// cntが4以上になったら0に戻る
if(cnt>=4) {cnt=0;}
else {cnt++;}
// 変数cntの値によって、対応するcaseの位置へ飛ぶ
switch(cnt)
{
// cnt=0の時に実行される
// 色の変数をrgb全て0にする
case 0: iro_r= 0 , iro_g= 0 , iro_b= 0; break;
// cnt=1の時に実行される
case 1: iro_r=255 , iro_g= 0 , iro_b= 0; break;
// cnt=2の時に実行される
case 2: iro_r= 0 , iro_g=255 , iro_b= 0; break;
// 以下同様、、、
case 3: iro_r= 0 , iro_g= 0 , iro_b=255; break;
case 4: iro_r=255 , iro_g=255 , iro_b=255; break;
}
return true;
}
// マウスのボタンが押され続けている間、実行されるメソッド
public boolean mouseDrag(Event e,int x,int y)
{
// これから描画する物の色を指定します
// Color(赤色,緑色,青色)で指定します
g.setColor(new Color(iro_r,iro_g,iro_b));
// 保存されているXY座標から現在の座標までの線を描画する
g.drawLine(oldx,oldy,x,y);
// 現在の座標を保存します
oldx=x;
oldy=y;
// ブラウザの下のステータス行に現在の座標を表示
showStatus("( "+e.x+" : "+e.y+" )");
return true;
}
// マウスの位置が移動したときに呼ばれるメソッド
public boolean mouseMove(Event e,int x,int y)
{
// 現在の座標をステータス行に表示します
showStatus("( "+e.x+" : "+e.y+" )");
return true;
}
}
JAVAへ戻る
トップへ戻る