可以参考《最新JAVA核心技术卷一》的例子mouseTest.java

解决方案 »

  1.   

    public void action (Event e){
       if (e.target.toString() = "你的对象")
          {}
    }
      

  2.   

    xingxing(xingxing) 什么意思,不大明白?请详示,谢谢!
      

  3.   

    你的把你的MyLine对象都保存下来吧,然后你的有一个判断标准,鼠标点击是否选中了你的某一个MyLine对象。得到对象就可以取到属性值了。
      

  4.   

    gularess(无吃哪拉) 的方法是很通用的解决方法。import java.util.*;
    class MyLine {
      private static final Vector  lineVector = new Vector();
      
      public MyLine() {
        .... 
        lineVector.addElement(this);
        .....
      }
      private boolean contains(Point p) {
       ...
      }
      public static MyLine getLine(Point p) {
        for(int i=0,count=lineVector.size();i<count;i++) {
          MyLine line = (MyLine)lineVector.elementAt(i);
          if( line.contains(p) )
            return line;
        }
        return null;
      }
    }
    没做验证,不过这个结构还可以用。
      

  5.   

    import java.util.*;
    class MyLine {
      // 保存所有生成的实例的Vector
      private static final Vector  lineVector = new Vector();
      
      public MyLine() {
        .... 
        // 每生成一个实例,都把它放到Vector中。
        lineVector.addElement(this);    .....
      }  // 判断是否点击的点,在这条直线上
      private boolean contains(Point p) {
       ...
      }  // 检索所有的MyLine实例。
      public static MyLine getLine(Point p) {
        for(int i=0,count=lineVector.size();i<count;i++) {
          MyLine line = (MyLine)lineVector.elementAt(i);
          if( line.contains(p) )
            return line;
        }
        return null;
      }
    }
      

  6.   


      private boolean contains(Point p) {
       ...
      }
    这个方法里面怎么写?哪里得到鼠标的监听?
      

  7.   

    贴一点关键代码:
    //这个例子中将鼠标响应区定义为一个Rectangle2D区,每一条线对一个这样的区域。   private class MouseHandler extends MouseAdapter
       {
          public void mousePressed(MouseEvent event)
          {
             // add a new square if the cursor isn't inside a square
             current = find(event.getPoint());//根据鼠标坐标搜寻点击发生在那个图形对象上。
             if (current == null)
                add(event.getPoint());
          }
      }   public Rectangle2D find(Point2D p)
       {
          for (int i = 0; i < squares.size(); i++)
          {
             Rectangle2D r = (Rectangle2D)squares.get(i);//从squares列表中遍历每个已存在图形对象
             if (r.contains(p)) return r;//坐标点p是否处于响应区域r内,是则返回查找到的对象。
          }
          return null;
       }
      

  8.   

    contains()是Rectangle2D类的标准方法,如果你的区域类型是自己定义的,那需要自己定义contains()来判断某个坐标点是否在某区域内,用解析几何的方法计算就是了。
      

  9.   

    线也是继承于Rectangle2D类吗?线也是一个矩形吗?可是我上面还有圆弧等其它的图形呀?感谢你们回复了这么多,等我把问题搞定,一定给分!!!
    谢谢!