2011-11-17 88 views
1

打扰我:鼠标按下 - >拖动 - >释放。在java

我只是不知道如何链接这些连续的操作?

鼠标按下,然后拖动然后释放。如果用户不执行此操作,则不会执行某些操作...

我应该添加代码作为已经按下来区分吗?

恒MOUSE_MOVED由于Eclipse不起作用告诉我,它不知道它,虽然我觉得在mouse event api

我不知道这是怎么回事参数...请帮助!

回答

0

下面是一个简单的类,它封装了拖曳检测:

public abstract static class MouseDragListener { 
    java.awt.Component component; 
    MouseEvent dragStart; 

    public MouseDragListener(java.awt.Component component) { 
     super(); 
     this.component = component; 
     component.addMouseMotionListener(new MouseAdapter() { 
      public void mouseMoved(MouseEvent e) { 

       dragStart = null; 
      } 

      public void mouseDragged(MouseEvent e) { 
       if (dragStart == null) 
        dragStart = e; 
      } 
     }); 
     component.addMouseListener(new MouseAdapter() { 
      public void mouseReleased(MouseEvent e) { 
       if (dragStart != null) { 
        dragReleased(dragStart, e); 
       } 
      } 
     }); 
    } 

然后使用:

new MouseDragListener(center){ 
    void dragReleased(MouseEvent start,MouseEvent end){ 
      // do something ... 
    } 
}