當需要長時間運算時,或是開啟複雜的檔案時,會希望顯示目前的進度狀況。
如附圖:

1.首先需要安裝controlsfx套件,需要根據你的jdk版本安裝,本範例為jdk8:
https://search.maven.org/artifact/org.controlsfx/controlsfx
<dependency> <groupId>org.controlsfx</groupId> <artifactId>controlsfx</artifactId> <version>8.40.18</version> </dependency>
實現原理為使用Task與ProgressDialog連動,並定期回報進度,程式執行完成後自動關閉Dialog
2.建立Task
private Task loadTask;
public Task loadTask(File selectExe){
return new Task() {
@Override
protected Object call() throws Exception {
//跑跑跑
updateProgress(20, 100);//進度回報 (目前進度, 總進度)
System.out.println(selectExe);
//跑跑跑
//...
//...
updateProgress(100, 100);
return true;
}
};
}
3.建立ProgressDialog並連動loadTask
loadTask = loadTask(selectFile);//可以帶變數進執行序
ProgressDialog pdLoadFile = new ProgressDialog(loadTask);//綁定
pdLoadFile.setContentText("載入中...請稍後...");
pdLoadFile.setTitle("載入中");
new Thread(loadTask).start();//啟動
pdLoadFile.showAndWait();//鎖定畫面等待執行完成
這樣即可達到邊載入邊顯示進度Dialog的功能了。
-END-
發佈留言