import java.applet.* ; import java.awt.* ; import java.awt.event.* ; /* */ public class Kadai14 extends Applet implements MouseListener, MouseMotionListener{ Point p, Oldp ; int ox = 0, oy = 0 ; int r = 30 ; boolean drg = false ; Image buffer ; Graphics bufferg ; public void init(){ Dimension d = getSize() ; buffer = createImage( d.width, d.height ) ; addMouseListener( this ) ; addMouseMotionListener( this ) ; } public void mouseClicked( MouseEvent me ){ } public void mouseEntered( MouseEvent me ){ } public void mouseExited( MouseEvent me ){ } public void mousePressed( MouseEvent me ){ //マウスが押されたときの座標を取得 Oldp = me.getPoint() ; if( Math.pow( (double)(Oldp.x-(ox+r/2)), 2.0 ) +Math.pow( (double)(Oldp.y-(oy+r/2)), 2.0 ) <= Math.pow( (double)r/2, 2.0 ) ) drg = true;//円内で押されたらdrg=true } public void mouseReleased( MouseEvent me ){ //マウスが離された時、マウスの移動で円が動かないようにdrg=false drg = false ; } public void mouseDragged( MouseEvent me ){ //マウスが円内でドラッグされ、動いたとき、 //円の位置をマウスの移動量だけ増やす if( drg ){ p = me.getPoint() ; ox += p.x -Oldp.x ; oy += p.y -Oldp.y ; Oldp = p ; repaint() ; } } public void mouseMoved( MouseEvent me ){ } public void update( Graphics g ){ paint( g ) ; } public void paint( Graphics g ){ if( bufferg == null ) bufferg = buffer.getGraphics() ; Dimension d = getSize() ; bufferg.setColor( Color.white ) ; bufferg.fillRect( 0, 0, d.width, d.height ) ; bufferg.setColor( Color.black ) ; bufferg.fillOval( ox, oy, r, r ) ; g.drawImage( buffer, 0, 0, this ) ; } }