ドラッグで移動するための単純な四角形を取得しようとしています。私はそれを動かしているが、再びドラッグしようとすると、最初のドラッグの前に元の位置に戻る。 StackPane、FlowPane、Pane、AnchorPaneを試してみました。ドラッグ時のシェイプの移動Javafx - シェイプがリセットを維持する
public View getView() {
View view = new View("Test View");
view.setName(name);
Pane pane = new Pane();
rect.setOnMousePressed((MouseEvent me) -> {
xVal = me.getSceneX();
yVal = me.getSceneY();
System.out.println("PRESSED_" + Double.toString(rect.getX()));
});
rect.setOnMouseReleased((MouseEvent me) -> {
System.out.println("RELEASE_" + Double.toString(rect.getX()));
});
rect.setOnMouseDragged((MouseEvent me) ->{
final double diffX = me.getSceneX() - xVal;
final double diffY = me.getSceneY() - yVal;
System.out.println("SET_" + Double.toString(rect.getX()));
rect.setX(diffX);
rect.setY(diffY);
});
pane.getChildren().add(rect);
view.setCenter(pane);
return view;
}
注:rect
、xVal
、yVal
は、すべてのクラスのプロパティです。
問題は、矩形をうまく動かすことができることです。しかし、私が再び移動しようとすると、矩形は矩形の元の点に戻るようです。あなたはそれを元に戻すように思われる次の画像で見ることができます:
注:diffX
とdiffY
がfinal
であるという事実は、ここでの問題ではありません。
別注:私もそう、私はそれを周りいじっていたと私がいることを私が押し下げたびにそれを考え出し、XとY座標
xValとyValを削除できるようです。 – Sedrick