2016-05-25 12 views
1

私は、マウスを押し下げてズームアウトするイメージビューアを作成しました。マウスを下にドラッグすると、画像をドラッグできます。JavaFxはマウスの動きを検出します(画面の境界線に達した後)

public void dragOnMouseMove(MouseEvent event) { 

    if(zoomedIn) { 
     if(mouseStartX != null && mouseStartY != null) { 
      double x = this.getTranslateX() - (mouseStartX - event.getX()); 
      double y = this.getTranslateY() - (mouseStartY - event.getY()); 
      LOG.debug("moving picture to: " + x + "," + y); 
      this.setTranslateX(x); 
      this.setTranslateY(y); 
     } 
     mouseStartX = event.getX(); 
     mouseStartY = event.getY(); 
    } 
} 

これはドラッグイベントにバインドされています。 問題は、マウスが画面の境界に達すると、座標がそれ以上変化しないためドラッグが停止することです。 カーソル位置から独立してマウスの動きを検出する方法はありますか?

+0

多分、低レベルのAPIマウスフックですか? – Antoniossss

+0

何ですか?どうやって?あなたは "答え"をしようとしますか? – dermoritz

+0

マウスが停止している間は、画面の境界にいることを検出し、一定の速度で動き続けます。その速度は以前の値で計算する必要がありますが、最初は一定の速度を定義できます。 – UmNyobe

答えて

0

MouseInfo.getPointerInfo().getLocation()をお探しの方には参考になるかもしれません。現在のマウスの位置に対応するPointオブジェクトを返します。

+0

いいえ。私はポインタの場所を持っています。ポインターが画面の境界に達すると(たとえば左上隅)、その位置はもう変更されませんが、私はまだ誰かがマウスを動かすことを検出したいと思います。 – dermoritz

+0

MouseMotionListenerが何も返されない場合、私はそれが不可能だと思います。 – KrisKK

+0

@dermoritz OKカーソルポインターが左上にあります(0,0) - 教えてください。 – Antoniossss

関連する問題