我创建了场景,动画,列表视图,我的问题是在列表视图中单击动画时如何使它们播放,而且我还需要创建一个动画,以便一次可以播放多个动画。
这是我的代码:
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);
}
}
所以,我有一个问题:
当我在列表视图中单击某些动画时,如何开始播放动画(一次最多可以播放一个动画)。
答案 0 :(得分:2)
您可以将侦听器添加到列表视图中,以在选择项目时侦听。像这样:
listView.getSelectionModel().selectedItemProperty().addListener((obs, ov, nv) -> {
if(nv != null && "Translate Transition".equals(nv)){
translate.play();
}
//Etc...
});