2017-09-27 154 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帮助解决该问题 –