sclass WindowDragger extends MouseAdapter { MouseEvent mouseDownEvent; Pt rel; Window window; *(MouseEvent *mouseDownEvent, Window *window) { rel = pt( mouseDownEvent.getXOnScreen()-window.getX(), mouseDownEvent.getXOnScreen()-window.getY()); } public void mouseDragged(MouseEvent e) { updatePosition(e); } public void mouseReleased(MouseEvent e) { if (e.getButton() != mouseDownEvent.getButton()) ret; updatePosition(e); removeMouseAdapter(window, this); dragDone(); } void updatePosition(MouseEvent e) { window.setLocation( e.getXOnScreen()-rel.x, e.getYOnScreen()-rel.y); } void dragDone {} }