java语言的科学与艺术-编程练习10.4

 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     }
17     //鼠标拖拽事件
18     public void mouseDragged(MouseEvent e){
19         double x = press.getX();
20         double y = press.getY();
21         double width = e.getX() - press.getX();
22         double height = e.getY() - press.getY();
23         //确保向左下方拖拽也能画出矩形;
24         if(width < 0 ){
25             x = e.getX();
26             width = -width;
27         }
28         //确保向上方拖拽也能画出矩形;
29         if(height < 0){
30             y = e.getY();
31             height = -height;
32         }
33         if(height < 0) height = -height; 
34         GRect rect = new GRect(x, y, width, height);
35         rect.setFilled(true);
36         add(rect);
37     }
38     private GPoint press; //记录鼠标按下的点;
39 }

posted on 2012-12-20 11:57  mybluecode  阅读(724)  评论(0编辑  收藏  举报