當需要長時間運算時,或是開啟複雜的檔案時,會希望顯示目前的進度狀況。
如附圖:
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-
發佈留言