【发布时间】:2017-03-03 12:40:40
【问题描述】:
我开始与进度条绑定的任务的第一刻,后者开始并倒带然后重新启动,这一次根据我的计数器(如我所料)。这种不想要的效果非常微妙,但仍然可见。
下面是我的测试代码:
private void startButtonEventHandler(ActionEvent event) {
Service<Void> service = new Service<Void>() {
@Override
protected Task<Void> createTask() {
Task<Void> task = new Task<Void>() {
@Override
public Void call() throws Exception {
for (int i = 1; i <= 10; i++) {
// Long running task ...
Thread.sleep(500);
updateProgress(i, 10);
}
return null;
}
};
progressBar.progressProperty().bind(task.progressProperty());
return task;
}
};
service.start();
}
进度条是确定的:
progressBar = new ProgressBar(0.0F);
progressBar.setPrefWidth(200);
更新:我意识到 progressBar 在开始时以不确定模式启动,然后在第一次调用 updateProgress() 方法后切换到确定模式。这是错误还是功能?
【问题讨论】:
-
您是否尝试在启动服务之前将进度条的progress属性绑定到服务的progress属性而不是
progressBar.progressProperty().bind(task.progressProperty());? -
是的,我做到了,但它不能解决这种奇怪的行为。