我正尝试创建一个项目,其中用户在屏幕上单击,然后矩形将移动到发生单击位置。我的意图是让矩形的中心移动点击的确切位置,但我的代码只将矩形移动到发生点击的地方。我的问题是,如何获取矩形的中心以移动鼠标点击的确切位置?将矩形移动到发生鼠标单击的位置
public void start(Stage primaryStage) {
BorderPane root = new BorderPane();
Scene scene = new Scene(root,400,400);
Rectangle rec = new Rectangle(50,50,50,50);
rec.setLayoutX(200);
rec.setLayoutY(200);
TranslateTransition transition = new TranslateTransition(Duration.seconds(0.50), rec);
transition.setOnFinished(new EventHandler<ActionEvent>() {
@Override public void handle(ActionEvent t) {
rec.setLayoutX(rec.getTranslateX() + rec.getLayoutX());
rec.setLayoutY(rec.getTranslateY() + rec.getLayoutY());
rec.setTranslateX(0);
rec.setTranslateY(0);
}
});
scene.setOnMousePressed(e->{
transition.setToX(e.getSceneX() - rec.getLayoutX());
transition.setToY(e.getSceneY() - rec.getLayoutY());
transition.playFromStart();
});
root.getChildren().add(rec);
primaryStage.setScene(scene);
primaryStage.show();
}
这很好用,谢谢!我正在尝试了解Transitions和类似的东西。这是一个巨大的帮助。 – theAnon