2012-04-13 15 views
2

を表示:JavaFXのはsetCursorはすぐに、私はドラッグにカーソルを変更する必要があるとマウスをすぐに押された後、それを変更したいので、私はこのようにそれを行う

public class Graph extends Pane{ 


void someInit(){ 

    setOnMousePressed(new EventHandler<MouseEvent>() { 

      @Override 
      public void handle(MouseEvent e) { 
       logger.info("pressed graph x-> " + e.getX() + " | y->" + e.getY()); 
       setCursor(Cursor.MOVE); 
      } 
     }); 
} 

} 

マウスボタンを押すと、それを任意のピクセルを移動していない後、カーソルは変更されません。最小のマウス移動後に変化します。マウスを動かさずにすぐに表示するにはどうしたらいいですか?例えば、CSSを介して変更する場合

+1

同じ問題が発生しました。解決策は見つかりましたか? –

答えて

2

カーソルがすぐに更新されます。

.moving { 
    -fx-cursor: closed_hand; 
} 

次に、あなたのコードは次のようになります。

public class Graph extends Pane{ 
    void someInit() { 
     setOnMousePressed(new EventHandler<MouseEvent>() { 
      @Override 
      public void handle(MouseEvent e) { 
       logger.info("pressed graph x-> " + e.getX() + " | y->" + e.getY()); 
       Graph.this.getStyleClass().add("moving"); 
      } 
     }); 
    } 
} 

そして、あなたが使用して別のイベントの後半でカーソルを元に戻すことができます。

getStyleClass().remove("moving"); 
+0

:CSSセレクタを押した場合も、このような場合に役立ちます。http://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cssref.html#introlimitations – Travis

関連する問題