2017-09-27 10 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使用して、ありがとうござい新しいリスナーを追加してみてください –

関連する問題