2017-09-27 156 views
0
public void setListeners() { 
    for(Scene s : Org.scenes) { 
     s.setOnMouseMoved(new EventHandler<MouseEvent>() { 

      @Override 
      public void handle(MouseEvent event) { 
       mouseX = event.getSceneX(); 
       mouseY= event.getSceneY(); 

      } 

     }); 
    } 
} 

此代碼的工作很好,但是每當mouse1或mouse2不放,代碼不工作,mouseX和mouseY的變量保持在相同的值,儘管後停止鼠標正在移動。我不明白爲什麼按住鼠標按鈕暫停變量的更新。的JavaFX的MouseEvent方法getSceneX()拿着鼠標按鈕

回答

0

當您按下上沒有更多的被視爲鼠標移動時鼠標任意鍵,取而代之的則變成了鼠標點擊事件,如果你按住鼠標按鈕和移動光標這將是一個鼠標拖動事件。因此,嘗試添加新的聽衆setOnMouseClicked()setOnMouseDragged()

s.setOnMouseClicked(new EventHandler<MouseEvent>() { 

       @Override 
       public void handle(MouseEvent event) { 
        //what you want to do 

       } 

      }); 

    s.setOnMouseDragged(new EventHandler<MouseEvent>() { 

       @Override 
       public void handle(MouseEvent event) { 
        //what you want to do 

       } 

      }); 
+0

謝謝你,用相同的方法體setOnMouseDragged幫助解決該問題 –