Как создать анимацию для добавления / удаления узла в VBox? - PullRequest
1 голос
/ 26 июня 2019

Мне нужно создать анимацию для удаления текущих узлов, а затем добавить новые узлы в 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.

Пожалуйста, помогите

Спасибо

...