1 /* 2 * 程序可以用鼠标拖拽话出一个矩形; 3 */ 4 import acm.graphics.*; 5 import acm.program.*; 6 import java.awt.event.*; 7 8 public class DrawRectangle extends GraphicsProgram{ 9 //鼠标侦听10 public void run(){11 addMouseListeners();12 }13 //鼠标按下事件14 public void mousePressed(MouseEvent e){15 press = new GPoint(e.getPoint());16 rect = new GRect(0,0);17 }18 //鼠标拖拽事件19 public void mouseDragged(MouseEvent e){20 double x = press.getX();21 double y = press.getY();22 double width = e.getX() - press.getX();23 double height = e.getY() - press.getY();24 //确保向左下方拖拽也能画出矩形;25 if(width < 0 ){26 x = e.getX();27 width = -width;28 }29 //确保向上方拖拽也能画出矩形;30 if(height < 0){31 y = e.getY();32 height = -height;33 }34 35 rect.setSize(width,height);36 rect.setFilled(true);37 add(rect, x, y);38 }39 private GPoint press; //记录鼠标按下的点;40 private GRect rect;41 }
设置 一个 Grect 实例变量,使用 setSize方法改变矩形大小