ユーザーが画面上をクリックし、クリックが発生した位置に四角形が移動するプロジェクトを作成しようとしています。私の意図は、クリックの正確な位置を移動する四角形の中心を取得することでしたが、私のコードはクリックが発生した一般的な領域に四角形を移動します。私の質問は、どのようにマウスのクリックが発生する正確な場所を移動する四角形の中心を取得するのですか?マウスクリックが発生する位置に矩形を移動する
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();
}
これは完璧に動作します、ありがとうございます!私はトランジションとそれに似たものについて学びたいと思っています。これは大きな助けとなりました。 – theAnon