`
happy20070302
  • 浏览: 94994 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

进度条

    博客分类:
  • j2se
阅读更多
package test;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.InputStream;
import java.io.InputStreamReader;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.ProgressMonitorInputStream;

public class ProgressMonitorTest {
  public static void main(String[] args) {
    // 创建一个包含“Click me”的窗口
    final JFrame f = new JFrame("ProgressMonitor Sample");
    f.getContentPane().setLayout(new FlowLayout());
    JButton b = new JButton("Click me");
    f.getContentPane().add(b);
    f.pack();

    // 设置按钮的动作事件
    b.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        // 这儿使用了新的线程处理按钮的动作事件,因为我们需要
        //主窗口的线程响应用户。这样你可以多次点击该按钮,
        //会启动多个读取文件的线程。主窗口也保持响应。
        new Thread() {
          public void run() {
            try {
              // 打开文件输出流,把InputStream包装在ProgressMonitorInputStream中。
              //在当前目录中需要放置一个大文件,建议超过50M
              InputStream in = new FileInputStream("100.txt"); 
              ProgressMonitorInputStream pm = 
                  new ProgressMonitorInputStream(f,"Reading a big file",in);
              // 读取文件,如果总耗时超过2秒,将会自动弹出一个进度监视窗口。
              //   显示已读取的百分比。
             
             
              InputStreamReader isr = new InputStreamReader(pm);
              BufferedReader br = new BufferedReader(isr);
              String line;
              int mn=0;
              while ((line = br.readLine()) != null) {
                System.out.println(line);
                mn++;
               
              }
              System.out.println(mn);
              br.close();

             
             
             
            
              pm.close(); 
            }
            catch(Exception ex) {
              ex.printStackTrace();
            }
          }
        }.start();
      }});  
  
    // 设置缺省的窗口关闭行为,并显示窗口。
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);
  }
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics