您的位置:首页 > 编程语言

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

2004-09-01 19:14 387 查看
[原创]一个读文件的进度条

/**
* @(#) 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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: