任务完成后打开阶段JavaFX

时间:2015-05-11 16:19:19

标签: java javafx

我想要运行一项任务,同时我想要一个进度条。我找到了如何同时执行两个线程,但现在我希望在任务完成时(当getTeller()== 1380)并打开一个新阶段时,舞台与进度条关闭。 有人能帮我吗?这就是我已经拥有的(它显示了进度条,但进度条永远不会关闭)。

                progressStage = new Stage();                
                progressStage.initModality(Modality.APPLICATION_MODAL);                  

                VBox root6 = new VBox(2);
                task = new Task<Integer>() {
                    @Override
                    public Integer call() throws Exception{
                        n = new Netwerk(bestand);//this is where the count starts to 1380
                        if(n.getTeller()==1380){


                            progressStage.close();
                            SaveStage = new Stage();
                            SaveStage.initModality(Modality.APPLICATION_MODAL);
                            ...//here I do the layout part

                        }
                        return null;

                    }
                 };

                pb = new ProgressBar();
                pb.progressProperty().bind(task.progressProperty());
                new Thread(task).start();

                Label lg = new Label("Even geduld...");
                root6.getChildren().addAll(lg,pb);
                Scene scene5 = new Scene(root6,300,200);
                progressStage.setTitle("TreinSysteem");
                progressStage.setResizable(false);
                progressStage.setScene(scene5);
                progressStage.show();

1 个答案:

答案 0 :(得分:0)

  1. 确保您的Task在符合条件时结束(在您的情况下:计数为1380),例如简单return null
  2. Task完成工作后,使用task.setOnSucceeded()执行某些操作。在您的情况下:打开一个新的Stage并隐藏ProgressBar