マウス操作で四角形を描画

mouseDown位置とmouseUp位置とを対角線とする四角形を描画します。


Java Appletです


ソースコード

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

public class ja04a extends Applet
{
  int sx,sy,w,h;	//描画開始位置のxy座標,描画領域の幅と高さ
  boolean m_down = false;	//mouseDownされたかどうかを識別するフラグ(falseで初期化)

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

  public void paint(Graphics g){
	Font f = new Font("TimesRoman",Font.BOLD,16);
	g.setFont(f);						//フォントの設定
	if(m_down){
	  g.setColor(Color.blue);				//描画色を設定
	  g.drawString("四角形の開始座標は("+ sx + "," + sy + ")です",10,20);
	  g.drawString("四角形の幅は(" + w + "ピクセル),高さは(" + h + "ピクセル)です",10,40);
	  g.setColor(Color.red);
	  g.drawRect(sx,sy,w,h);			//マウスダウンで四角形を描画
	}else{
	  g.drawString("マウスドラッグで四角形を描けます",10,20);
	}
  }

  public boolean mouseDown(Event et,int x,int y){
    sx = x;sy =y;	  //描画開始位置の座標をmouseDown位置のxy座標に設定
	w = 0;h = 0;
	m_down = true;	  //フラグをtrueに
	return true;
  }

  public boolean mouseUp(Event et,int x,int y) {
    if(x < sx){
	  w = sx - x;
	  sx = x;
	} else {
	  w = x - sx;
	}

	if(y < sy){
	  h = sy - y;
	  sy = y;
	}else{
	  h = y - sy;
	}

	repaint();		//paintメソッドの呼び出し
	return true;
  }
}

 

末尾