實現這個功能比較簡單,用到的類有兩個:ProgressMonitorInputStream(主要是整個類) 和 ProgressMonitor ,它們在g中
大體思路,你要首先知道整個檔案的大小,和當前已經讀取檔案的大小,獲得整個檔案大小的方法
複製程式碼 程式碼如下:
ProgressMonitorInputStream monitor;
/**
* @param 表示此進度條要依附在哪個元件上
* @param 顯示在此進度條上的訊息
* @param 需要監控的`輸入流
*/
monitor = new ProgressMonitorInputStream(null, "Loading ",new FileInputStream("filename path"));
int all = lable();//整個檔案的大小
int in = (data);//每次讀取檔案的大小
例如:你每次讀一行str=Line();則data=ytes()+1;這裡+1,主要是為了獲得換行符的位元組數,否則,最後獲得的進步無法達到100%
複製程式碼 程式碼如下:
int readed=0;//表示已經讀取的檔案
reader+=in;//累加讀取檔案大小
計算進度:
複製程式碼 程式碼如下:
float process = (float) readed / all * 100;// 算出百分比
視窗顯示:
複製程式碼 程式碼如下:
ote("archived " + process + " %");// 顯示在進度條上