DragUsingObjectDrawModel
Retired DISLab
import acm.program.*; import acm.graphics.*; import java.awt.*; public class DragUsingObjectDrawModel extends GraphicsProgram { public void init() { GRect rect = new GRect(100, 100, 150, 100); rect.setFilled(true); rect.setColor(Color.RED); add(rect); GOval oval = new GOval(300, 115, 100, 70); oval.setFilled(true); oval.setColor(Color.GREEN); add(oval); } public void mousePressed(GPoint pt) { last = pt; gobj = getElementAt(last); } public void mouseDragged(GPoint pt) { if (gobj != null) { gobj.move(pt.getX() - last.getX(), pt.getY() - last.getY()); last = pt; } } public void mouseClicked(GPoint pt) { if (gobj != null) gobj.sendToFront(); } /* Private instance variables */ private GObject gobj; /* The object being dragged */ private GPoint last; /* The last mouse position */ private static final long serialVersionUID = 1; }