【发布时间】:2014-10-31 03:36:20
【问题描述】:
如何实现 ProgressBar 相关的“updateProgress”相关逻辑,以指示复杂后台任务的滚动性能,如下所示。 这意味着与任务相关的服务方法非常复杂,很难使用该方法逐步详细说明并实现“updateProgress”相关逻辑。 如果有人有任何想法,请告诉我。谢谢。
@FXML
private ProgressBar progressBar;
@Autowired
private DataExportService dataExportService;
private List<Device> deviceList; // User selected device list for export
/*
* Export user selected data
*/
@FXML
public void doExport() {
// Defile the data export concurrent Task
final Task taskExport = new Task<Void>() {
@Override protected Void call() throws Exception {
if(deviceList.size() > 0) {
try {
// How can I implement ProgressBar related 'updateProgress' logic in here ?
// Note: It is so hard to implement ProgressBar related indicator on in side the
// 'exportData()' methods because it is too complicated and it had several
// steps ex: Filter Device related all data, Build a SQL script,
// Write SQL Script to file etc.
dataExportService.exportData(deviceList);
} catch (DataExportException e) {
logger.error(e.getMessage());
}
}
return null;
}
};
// Set task property to ProgressBar
progressBar.progressProperty().bind(taskExport.progressProperty());
// Start data export task
new Thread(taskExport).start();
}
【问题讨论】:
标签: javafx progress-bar task