0
如何實現與ProgressBar相關的'updateProgress'相關邏輯以指示覆雜背景任務的滾動性能如下。 這意味着與任務相關的服務方法如此複雜,並且很難逐步詳細地使用該方法並實現'updateProgress'相關邏輯。 如果有人有一些想法,請讓我知道。謝謝。用於複雜背景的JavaFX進度條任務
@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();
}
Kalaschni嗨。謝謝回覆。問題是我們如何將最大值計算爲20,以及如何將此更新進度欄功能與exportData服務方法結合(同步)。謝謝。 – Channa 2014-12-19 01:21:51
你知道我認爲的最大值(deviceList.size)...順便說一句,你可以通過'list.isEmpty()'檢查列表是否爲空。 – Kalaschni 2014-12-22 08:08:53