Как запустить анимацию из списка в одно нажатие мыши - JAVAFX - PullRequest
1 голос
/ 27 марта 2019

Я создал сцену, анимацию, представление списка, моя проблема заключается в том, как заставить анимацию воспроизводиться, когда я нажимаю на них в виде списка, а также мне нужно создать так, чтобы одновременно можно было воспроизвести более одной анимации.

Вот мой код:

    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);
}

}

Итак, у меня проблема только с:

Как запустить анимацию (может быть более одной анимации одновременно), когда я нажимаю на анимацию в виде списка.

1 Ответ

2 голосов
/ 27 марта 2019

Вы можете добавить слушателя к вашему списку просмотра, который слушает, когда элементы выбраны. Примерно так:

listView.getSelectionModel().selectedItemProperty().addListener((obs, ov, nv) -> {
    if(nv != null && "Translate Transition".equals(nv)){
         translate.play();
    }
    //Etc...
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...