Прямо сейчас я пытаюсь кодировать простые счеты с JavaFX. На горизонтальных направляющих расположены шарики, расположенные в сетке, и я использую translateTransition, чтобы переместить их вправо при нажатии. Ниже приведен код, который у меня есть сейчас, который отлично работает на любом из шаров в сетке, за исключением того, что он только оживляет движение вправо. При втором щелчке шар переходит обратно влево в исходное положение без анимации, и я не могу понять, почему он не анимируется. Любая помощь или идеи будут с благодарностью!
private void onClick(final Circle circle) {
circle.setOnMouseClicked(new EventHandler<MouseEvent>() {
public void handle(MouseEvent mouseEvent) {
//set movement direction, check if circle has been moved
int targetX = 200;
if (circle.getTranslateX() > 1) {
targetX = 0;
}
//animation trigger and details
TranslateTransition push = new TranslateTransition(Duration.millis(500));
push.setNode(circle);
push.setFromX(circle.getCenterX());
push.setToX(targetX);
push.play();
}
});
}