private void runProcessingAnimation(double duration) { timeline.setAutoReverse(true); timeline.setCycleCount(2); // transitionRect = new TranslateTransition(Duration.millis(duration), rectangle); // transitionCircle = new TranslateTransition(Duration.millis(duration), circle); transitionCircle.setDuration(Duration.millis(duration)); transitionCircle.setNode(circle); transitionCircle.setAutoReverse(false); transitionCircle.setByX(150); transitionCircle.setFromX(0); transitionRect.setAutoReverse(false); transitionRect.setDuration(Duration.millis(duration)); transitionRect.setNode(rectangle); transitionRect.setByX(150); transitionRect.setFromX(0); KeyValue keyValue = new KeyValue(imageViewTop.translateYProperty(), 90); KeyFrame keyFrame = new KeyFrame( Duration.millis(duration), (ActionEvent) -> { toggleHide(rectangle); transitionRect.play(); transitionCircle.play(); stackProducts(rectangle, imageViewRightStorage, this); }, keyValue); timeline.getKeyFrames().clear(); timeline.getKeyFrames().add(keyFrame); timeline.play(); }