2011-11-17 83 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 ... 
    } 
}