能说的具体点么,我刚学不久拉
我现在已经把JPanel设置为监视源了,利用鼠标的进行绘制直线

解决方案 »

  1.   

    可是我是要在JPanel上已经绘制完成的直线(Line2D)上添加鼠标响应啊
    要不然无法使我画的直线左右拖拉啊!!!
      

  2.   

    给面板添加鼠标监听器,然后每个组件对象(包括你的Line2D)都有一个区域的,在鼠标事件中判断鼠标是否在或进入这个对象区域内,如果在区域内的话,则进行移动,拖拉操作(不断的删除,重绘)例如:
    boolean contains(Point2D p) ;可以将鼠标点坐标转换为point2D,然后可判断是否在此Line2D内(当然在鼠标事件中还可以设置其Line2D对象外形,如加粗等表示选中)
      

  3.   

    楼上说的很清楚了.我补充一下:
    如果只需 长与短的操作可如下
    :
    在直线的两端 加上二个节点 
    让后添加事件
    void mousePressed(MouseEvent e)
      {
        if(e.getClickCount() == 1)
        {
          Point pt = e.getPoint();
          nodeIndex = getNode(pt);//转化到你的节点索引 ,如果只有二个,则getNode()比较简单
    //表示单击后是否选择了 两端的节点
        }
      }
    void mouseDragged(MouseEvent e)
      {
        Point pt = e.getPoint();
        if(nodeIndex != -1)
        {
           if(nodeIndex == 0)
           {
               reDraw( pt,endPoint);//示意函数,表示你需要重新划一条  当前的点起点,
           }
           else
           {
                 reDraw( pt,endPoint);//示意函数,表示你需要重新划一条  当前的点终点,        }
        }
      }
      

  4.   

    最后一个 reDraw( pt,endPoint);//示意函数,表示你需要重新划一条  当前的点终点,
    写错lereDraw( startPoint,pt);//