如何在鼠标单击时从列表视图开始动画-JAVAFX

如何在鼠标单击时从列表视图开始动画-JAVAFX,javafx,Javafx,我创建了场景、动画、列表视图,我的问题是,当我在列表视图中单击动画时,如何使它们播放,而且,我还需要创建,以便一次可以播放多个动画 这是我的密码: Group group = new Group(); Circle circle = new Circle(50, 300, 50); circle.setFill(Color.RED); TranslateTransition translate = new TranslateTransition();

我创建了场景、动画、列表视图,我的问题是,当我在列表视图中单击动画时,如何使它们播放,而且,我还需要创建,以便一次可以播放多个动画

这是我的密码:

    Group group = new Group();

    Circle circle = new Circle(50, 300, 50);
    circle.setFill(Color.RED);

    TranslateTransition translate = new TranslateTransition();
    translate.setByX(400);
    translate.setDuration(Duration.millis(1000));
    translate.setCycleCount(500);
    translate.setAutoReverse(true);
    translate.setNode(circle);

    FadeTransition fade = new FadeTransition();
    fade.setDuration(Duration.millis(1000));
    fade.setFromValue(10);
    fade.setToValue(0.1);
    fade.setCycleCount(500);
    fade.setAutoReverse(true);
    fade.setNode(circle);

    ScaleTransition transition = new ScaleTransition();
    transition.setByX(1);
    transition.setByY(1);
    transition.setDuration(Duration.millis(1000));
    transition.setCycleCount(500);
    transition.setAutoReverse(true);
    transition.setNode(circle);

    ListView listView = new ListView();
    listView.setPrefWidth(120);
    listView.setPrefHeight(90);
    listView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);

    listView.getItems().add("Translate Transition");
    listView.getItems().add("Fade Transition");
    listView.getItems().add("Scale Transition");





    group.getChildren().addAll(circle, listView);

    Scene scene = new Scene(group, 600, 600);

    primaryStage.setScene(scene);

    primaryStage.show();
}

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    launch(args);
}

}
所以,我有一个问题:


如何在列表视图中单击某个动画时启动动画(可以同时启动多个动画)。

您可以在列表视图中添加一个侦听器,以便在选中项目时进行侦听。大概是这样的:

listView.getSelectionModel().selectedItemProperty().addListener((obs, ov, nv) -> {
    if(nv != null && "Translate Transition".equals(nv)){
         translate.play();
    }
    //Etc...
});