任务完成后打开阶段 JavaFX
open stage after task is completed JavaFX
我想要运行一个任务,同时我想要一个进度条。我发现了如何同时执行两个线程,但现在我希望在任务完成时(当 getTeller() == 1380 时)关闭带进度条的 Stage 并打开一个新的 Stage。
有人能帮我吗?这是我已经拥有的(它显示进度条,但进度条永远不会关闭)。
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();
- 确保您的
Task
在满足您的条件时结束(在您的情况下:计数为 1380
),例如用一个简单的 return null
.
- 在
Task
完成工作后使用 task.setOnSucceeded()
做一些事情。在您的情况下:打开一个新的 Stage
并隐藏 ProgressBar
.
我想要运行一个任务,同时我想要一个进度条。我发现了如何同时执行两个线程,但现在我希望在任务完成时(当 getTeller() == 1380 时)关闭带进度条的 Stage 并打开一个新的 Stage。 有人能帮我吗?这是我已经拥有的(它显示进度条,但进度条永远不会关闭)。
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();
- 确保您的
Task
在满足您的条件时结束(在您的情况下:计数为1380
),例如用一个简单的return null
. - 在
Task
完成工作后使用task.setOnSucceeded()
做一些事情。在您的情况下:打开一个新的Stage
并隐藏ProgressBar
.