// // 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)