如何打开无限多个阶段

时间:2019-03-02 02:03:41

标签: java javafx

基本上,我只是想在程序启动后每秒自动打开一个阶段。我打算沿着这条路线继续走下去,同时拥有多个使用不同阶段的时间轴,以便可以在其中放置不同的图像。这样做更实用的方法是什么?

    mediaPlayer.play();
    int seconds = 1;
    Timeline timeline = new Timeline(
            new KeyFrame(Duration.seconds(seconds), e -> {
                BorderPane bpnew = new BorderPane();
                Scene repscene = new Scene(bpnew, 400, 450);
                Stage repstage = new Stage();
                repstage.setScene(repscene);
                repstage.show();
            })
        );
    timeline.setCycleCount(Animation.INDEFINITE);
    timeline.play();

    BorderPane root = new BorderPane();

    Scene scene = new Scene(root, 400, 450);
    primaryStage.setScene(scene);
    primaryStage.setTitle("Popup Test");
    primaryStage.show();
}

1 个答案:

答案 0 :(得分:2)

这样的代码怎么样。您可以创建一个custom Dialog。然后将其放在您的计时器中。您还可以使用AnimationTimer。就像TimeLine一样,但是每秒被调用60次,没有其他限制。

    Timeline timeline = new Timeline(
            new KeyFrame(Duration.seconds(5), e -> {
                Dialog< Void> dialog = new Dialog<>();
                dialog.setTitle( "Image");
                dialog.getDialogPane().getButtonTypes().add(ButtonType.OK);

                ImageView view = new ImageView("https://upload.wikimedia.org/wikipedia/commons/1/11/Cheetah_Kruger.jpg");

                ScrollPane root = new ScrollPane( view);
                root.setPrefWidth( 800);
                root.setPrefHeight( 600);

                dialog.getDialogPane().setContent( root);
                dialog.setResizable( true);
                dialog.show();
            })
        );
    timeline.setCycleCount(Animation.INDEFINITE);
    timeline.play();

few more options for periodic timers.