论坛首页 入门技术论坛

分享ProgressMonitorInputStream之用法--进度条展示

浏览 5236 次
该帖已经被评为新手帖
作者 正文
   发表时间:2010-02-05   最后修改:2010-02-08

 

 

 

 

 

 

 

总结ProgressMonitorInputStream之用法如下:

 

import

 

 

java.io.FileInputStream;

 

import

 

 

javax.swing.ProgressMonitor;

import

 

 

javax.swing.ProgressMonitorInputStream;

 

public

 

 

class ProgressMonitorTest {

public static void main(String args[]) throws Exception {

// declare ProgressMonitorInputStream Object

ProgressMonitorInputStream monitor;

/**

* @param 表示此进度条要依附在哪个组件上

* @param 显示在此进度条上的消息

* @param 需要监控的输入流

*/

monitor = new ProgressMonitorInputStream(null, "Loading ",

new FileInputStream("filename path"));

 

/**

* 得到与此监控流相对应的监控对象

*/

ProgressMonitor progressMonitor = monitor.getProgressMonitor();

 

int read_unit = 2;// 设置每次读取的字节数

int all = monitor.available();// 得到目标文件的总字节数

int readed = 0;// 每次实际读取到的字节数

byte[] data = new byte[read_unit];// 字节数组,保存读取到的字节数

while (monitor.available() > 0) {

Thread.sleep(1);// 故意放慢速度好看清进度条

int in = monitor.read(data);

readed += in;

// System.out.write(data);

float process = (float) readed / all * 100;// 算出百分比

// System.out.println("archived " + process + " %");

progressMonitor.setNote("archived " + process + " %");// 显示在进度条上

}

}

}

论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics