如何创建动画以添加/删除VBox中的节点?

时间:2019-06-25 22:07:41

标签: java animation javafx vbox

我需要创建一个动画来删除当前节点,然后将新节点添加到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的算法。

请帮助

谢谢

0 个答案:

没有答案