【发布时间】:2016-11-07 18:17:13
【问题描述】:
我有一个List 的任务,它们都会更新一个名为totalProgress 的通用进度条。此栏会针对每个任务单独更新。我尝试创建一个DoubleBinding 对象,以便能够根据每个任务的平均进度更新进度条,但它不起作用。
这是我正在尝试使用的代码:
double p = 0.0;
for (final Task t : tasks) {
threadPool.submit(t);
DoubleBinding totalProgress = Bindings.createDoubleBinding(new Callable<Double>() {
@Override
public Double call() {
p = (p+t.getProgress()) / tasks.size();
System.out.println("P"+p + "Progress"+t.getProgress());
return p;
}
});
bar.progressProperty().bind(totalProgress);
//bar.progressProperty().bind(t.progressProperty());
t.setOnSucceeded(handler);
}
threadPool.shutdown();
【问题讨论】:
-
你为什么不和你链接的帖子一样呢?
-
我试过了,但不能在双重绑定方法中使用 task1.progressProperty(), task2.progressProperty()) ide 给出了一个错误,而且我有一个任务列表,那些不是固定的。就像我将任务添加到任务列表并从列表中执行
-
我做了这个@James_D,这是我能知道的最好的,我知道它的蹩脚但我尝试了很多,很抱歉之前的评论错误地发布了
-
当我打印进度时它会很好,但我想绑定有一些错误?我无法纠正
标签: java multithreading javafx binding progress-bar