簡體   English   中英

任務完成后的開放階段JavaFX

[英]open stage after task is completed 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. 確保您的Task在滿足條件時結束(在您的情況下:計數為1380 ),例如,使用簡單的return null
  2. Task完成工作后,使用task.setOnSucceeded()進行操作。 在您的情況下:打開一個新Stage並隱藏ProgressBar

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM