2016-09-23 33 views
0

當拖動事件仍在運行時,是否有一種方法可以跟蹤鼠標位置的值,如果值是如此,那麼執行一些代碼?跟蹤運行時拖動事件的進度。 JavaFX

編輯:由於這混淆了人。我正在尋找一種方式來獲得拖動時鼠標位置的實時數據。實時我的意思是在不拖動開始或結束時拖動鼠標時找到鼠標的位置。

+0

哪種拖動事件?涉及剪貼板或其他類型? – fabian

回答

2

您可以使用setOnMouseDragged();

source.setOnMouseDragged(m->{ 
      System.out.println("MouseScreenX:"+m.getScreenX()+", MouseScreenY:"+m.getScreenY()); 
      System.out.println("MouseSceneX:"+m.getSceneX()+", MouseSceneY:"+m.getSceneY()); 

      //Execute some code here(maybe it has to run in a different Thread) 
      //....code 
      //.... 
     }); 

如果你不舒服lambda expressions

source.setOnMouseDragged(new EventHandler<MouseEvent>() { 
      @Override 
      public void handle(MouseEvent event) { 
       System.out.println("MouseScreenX:" + event.getScreenX() + ", MouseScreenY:" + event.getScreenY()); 
       System.out.println("MouseSceneX:" + event.getSceneX() + ", MouseSceneY:" + event.getSceneY()); 

       // Execute some code here(maybe it has to run in a different 
       // Thread) 
       // ...code 
       // .... 
      } 
     }); 
+0

我正在尋找不是鼠標拖動的實時數據。 –

+0

@Adam Ren你的意思是實時數據嗎?描述它導致沒有人會理解。鼠標移動到的文件夾?窗口? – GOXR3PLUS

+0

我需要查看鼠標在拖拽時的位置,而不是在完成我們的開始時。 –

0

執行一些代碼,而在拖動過程中被:

setOnMouseDragged(new EventHandler<TouchEvent>() { 
     @Override 
     public void handle(MouseEventevent) { 
      //your code here 
     } 
    }); 

你究竟是什麼意思,「如果該值是如此之後,然後執行一些代碼?」?