我有两个不同的类到两个不同的文件中一个类用于ProgressBar
public class ProgressBarController implements Initializable {
@FXML
public ProgressBar progressBar;
@Override
public void initialize(URL location, ResourceBundle resources) {
}
}
另一个类是我想要遍历列表并基于该列表更新进度
public class AnotherClass {
public Envelope function(List<Invoice> invoiceList) throws IOException {
for(Invoice invoiceModel : invoiceList) {
// update the progressBar and do some work
}
}
}
我尝试创建一个新线程
Task<Void> task = new Task<>() {
@Override
public Void call() {
for (int i = 0; i < 100; i++) {
// do some work
updateProgress(i + 1, 100);
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
return null;
}
};
progressBar.progressProperty().bind(task.progressProperty());
Thread thread = new Thread(task);
thread.start();
但这也不起作用,我的进度条没有更新,如果是,那么它是更新后,完成所有其他任务。
我想根据for循环中的数据更新progressBar。
1条答案
按热度按时间0ejtzxu11#
下面的例子展示了如何更新
ProgressBar
以获得Tasks
列表。我猜Button
中的内容与for(Invoice invoiceModel : invoiceList)
中的内容类似。