如何在鼠标单击时从列表视图开始动画-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...
});