Мне нужно создать анимацию для удаления текущих узлов, а затем добавить новые узлы в VBox.
public final class Cart extends javafx.scene.layout.VBox {
...
public FadeTransition hide_old_show_new(ArrayList<Text> nodes) {
var transition = new FadeTransition();
var size = getChildren().size();
if (size > 0 && !getChildren().get(0).equals(nodes.get(0))) {
transition = new FadeTransition(Duration.millis(200), getChildren().get(size - 1));
transition.setFromValue(1);
transition.setToValue(0);
transition.setOnFinished((event) -> {
getChildren().remove(size - 1);
hide_old_show_new(nodes);
});
transition.play();
} else if (size < nodes.size()) {
getChildren().add(nodes.get(size));
getChildren().get(size).setOpacity(0);
transition = new FadeTransition(Duration.millis(200), getChildren().get(size));
transition.setFromValue(0);
transition.setToValue(1);
transition.setOnFinished((event) -> {
hide_old_show_new(nodes);
});
transition.play();
}
return transition;
}
...
Надеюсь, это понятно. Но это излишне сложно.
Вы знаете, как это упростить? Или лучший алгоритм? Буду благодарен за улучшение.
Однако я не хочу использовать алгоритм с использованием * .fxml.
Пожалуйста, помогите
Спасибо