Вы должны анимировать координаты перевода, а не координаты макета.
double deltaPosition = 100; //translation gets added to your current layoutX
KeyValue kk2 = new KeyValue(btn.translateXProperty(), deltaPosition, Interpolator.LINEAR);
KeyFrame kk = new KeyFrame(Duration.millis(5000),kk2);
Timeline timeline = new Timeline();
timeline.getKeyFrames().add(kk);
timeline.setCycleCount(1);
btn.setOnAction(ae -> {
System.out.println("Hello World!");
timeline.play();
}
);
Значения макета перезаписываются панелями макета, такими как HBox
, AnchorPane
, но не Group
или Pane
. В качестве альтернативы, установите setManaged(false)
на кнопку, чтобы родительский контейнер не мешал его макету, но вам придется делать все макеты самостоятельно.