//
// exMDrag2 2001/12/02 by ONOZATO Takehisa
//
// サンプル:マウスドラッグ(図形の平行移動)
//
//
//
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class exMDrag2 extends Applet implements MouseListener,MouseMotionListener{
Image ofs; Graphics grf; //オフスクリーン
int ofsWidth=400; int ofsHeight=300;
Color ofsBG=new Color(255,255,255); //背景色(白)
int centerX=ofsWidth/2; int centerY=ofsHeight/2; int radius=50;
int startAngle=30; int arcAngle=300;
boolean flgMove;
int startX, startY, endX, endY;
public void init() {
ofs=createImage(ofsWidth,ofsHeight); grf=ofs.getGraphics();
addMouseListener(this);
addMouseMotionListener(this);
flgMove=false;
startX=0; startY=0; endX=0; endY=0; //初期値
}
public void update(Graphics g) {
paint(g);
}
public void paint(Graphics g){
grf.setColor(ofsBG);
grf.fillRect(0,0,ofsWidth,ofsHeight); //背景
grf.setColor(Color.black);
grf.drawRect(0,0,ofsWidth-1,ofsHeight-1); //枠線
if(flgMove){
centerX=centerX+endX-startX;
centerY=centerY+endY-startY;
}
grf.setColor(Color.blue); //図形の描画
grf.fillArc(centerX-radius,centerY-radius,
2*radius,2*radius,startAngle,arcAngle);
g.drawImage(ofs,0,0,this); //オフスクリーンからアプレットへ描画
}
/*** マウスのイベントプロシージャ ***/
public void mousePressed(MouseEvent e){
startX=e.getX(); startY=e.getY(); //マウスの座標取得
endX=e.getX(); endY=e.getY();
if(Math.abs(startX-centerX)