Code:
class DrawPanel extends JPanel implements MouseListener, MouseMotionListener {
boolean isDragging=false;
Point mousePos=null;
public DrawPanel () {
this.addMouseListener(this);
this.addMouseMotionListener(this);
}
private void wipeScreen(Graphics g) {
Color c=g.getColor();
g.setColor(Color.white);
g.fillRect(0,0,this.getSize().width,this.getSize().height);
g.setColor(c);
}
public void paint (Graphics g) {
if (isDragging) {
g.drawOval(mousePos.x,mousePos.y,50,50);
} else {
wipeScreen(g);
}
}
/**
* MouseListener implementation
*/
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {
isDragging=false;
repaint();
}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
/**
* MouseMotionListener implementation
*/
public void mouseDragged(MouseEvent e) {
isDragging=true;
mousePos=e.getPoint();
repaint();
}
public void mouseMoved(MouseEvent e) {}
}