AWT 그림판 Mouse Event(mouseDragged)

import java.awt.*;
import java.awt.event.*;

public class MyDrawingDemo extends Frame
{
	int x=50, y=50;
	public MyDrawingDemo() {
		super("::MyDrawingDemo::");

		//리스너 부착
		MyHandler my = new MyHandler();
		addMouseMotionListener(my);
		
		addWindowListener(new WindowAdapter() { 
			public void windowClosing(WindowEvent e){
				System.exit(0);
			}
		});

	}//생성자-----

	class MyHandler extends MouseMotionAdapter
	{
		
		public void mouseDragged(MouseEvent e) {
			x=e.getX();
			y=e.getY();
			setTitle("x:"+x+", Y:"+y);
			// paint(new Graphics());
			// paint 메소드는 개발자가 직접 호출할 수 없다 
			// JVM 소관사항....
			repaint();
			// 개발자가 repaint()를 호출하면--> JVM-->update(g)-->paint(g)
			// update는 기존에 그린 그림을 지우고 paint(g)를 호출
			// update를 오버라이딩해서 지우는 부분을 삭제

		}
	}
	public void update(Graphics g) {
		//1)배경색으로 지우고.... 2)paint(g);
		paint(g);
	}

	// paint()메소드 오버라이딩----
	public void paint(Graphics g) {
		//g.setColor(Color.blue);
		//g.fillOval(50,50, 100,100);
		g.setColor(Color.red);
		g.fillOval(x,y,10,10);
	}//paint()-------------------

	public static void main(String[] args) 
	{
		MyDrawingDemo d = new MyDrawingDemo();
		d.setSize(500, 500);
		d.setVisible(true);
	}
}