Java ControlsFX的简单进度条
我在ControlsFX进度条对话框中遇到了一些问题,有人可以发布一个使用它的简单示例吗?我很难弄清楚如何更新进度条以及应该使用哪种类型的工作人员 我的尝试:Java ControlsFX的简单进度条,java,user-interface,javafx,Java,User Interface,Javafx,我在ControlsFX进度条对话框中遇到了一些问题,有人可以发布一个使用它的简单示例吗?我很难弄清楚如何更新进度条以及应该使用哪种类型的工作人员 我的尝试: Dialogs dialogs = Dialogs.create(); dialogs.nativeTitleBar().title("Updating Population List").masthead("Updating the population table") .
Dialogs dialogs = Dialogs.create();
dialogs.nativeTitleBar().title("Updating Population List").masthead("Updating the population table")
.message("The population table is being updated, please be patient.")
.owner(this.addNewPerson.getScene().getWindow()).showWorkerProgress(????);
ControlsFX进度条对话框需要一个辅助进程。其想法是,工人在工作进展时更新栏。但是请记住,除非在JavaFX线程上运行,否则无法更改实时场景图形对象,并且不希望在JavaFX线程上执行长任务(例如需要进度条的任务)。不要忘记使用Platform.runLater()来实际修改场景图 你可以在这里找到一个很好的例子来说明你在做什么
服务=新服务(){
@凌驾
受保护的任务createTask(){
返回新任务(){
@凌驾
受保护的Void调用()引发InterruptedException{
更新消息(“初始化任务”);
updateProgress(0,10);
对于(int i=0;i<10;i++){
睡眠(300);
//在这里做背景工作
Platform.runLater(新Runnable{
@凌驾
公开募捐{
//现场场景图在这里工作吗
}
});
updateProgress(i+1,10);
更新消息(“进度消息”);
}
更新消息(“完成”);
返回null;
}
};
}
};
//拥有工作人员后,可以创建状态对话框
Dialogs.create()
.业主(舞台)
.title(“进度对话框”)
.masthead(“做事情”)
.showWorkerProgress(服务);
service.start();
Service<Void> service = new Service<Void>() {
@Override
protected Task<Void> createTask() {
return new Task<Void>() {
@Override
protected Void call()throws InterruptedException {
updateMessage("Initializing Task");
updateProgress(0, 10);
for (int i = 0; i < 10; i++) {
Thread.sleep(300);
//DO BACKGROUND WORK HERE
Platform.runLater(new Runnable {
@Override
public void run() {
//DO LIVE SCENE GRAPH WORK HERE
}
});
updateProgress(i + 1, 10);
updateMessage("Progress Msg");
}
updateMessage("Finished");
return null;
}
};
}
};
//Once you have your worker, you can create the status dialog
Dialogs.create()
.owner(stage)
.title("Progress Dialog")
.masthead("Doing The Thing")
.showWorkerProgress(service);
service.start();