[原创]代码范例:一个读文件的进度条

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

[原创]一个读文件的进度条

/**

* @(#) TestProgressBar.java

*

* Copyright 2004 Opensource Develop Team. All rights reserved.

*/

// package

package com.opensource.progressbar;

// import classes

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.FileInputStream;

import java.io.InputStream;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.ProgressMonitorInputStream;

/**

* 当读取一个大文件的时候,需要显示一个进度条提示用户还有多少要读取和已经

* 读取了多少内容。

*

* @author ODT

* @version 1.0 01/05/2004

* @since JDK 1.3

*/

public class TestProgressBar

{

public static void main(String[] args)

{

// 创建一个有button的frame

final JFrame f = new JFrame("Sample");

f.getContentPane().setLayout(new FlowLayout());

JButton b = new JButton("Press me");

f.getContentPane().add(b);

f.pack();

// set up the file read action

b.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

// 当button按下的时候开始一个线程去读取文件。

// 因为我们需要一个空闲的线程去更新绘制progress monitor

new Thread()

{

public void run()

{

try

{

// 打开一个文件,封装进ProgressMonitorInputStream

InputStream in = new FileInputStream("D:\\Java projects\\mail.txt");

ProgressMonitorInputStream pm =

new ProgressMonitorInputStream(f,"Reading the big file",in);

// 读文件。如果需要很长时间,progress monitor将出现。

int c;

while((c=pm.read()) != -1)

{

// do something

}

pm.close(); // 可以改写一个更好的错误处理

}

catch(Exception ex)

{

ex.printStackTrace();

}

}

}.start();

}

});

// 显示frame

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.setVisible(true);

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航