⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 一个读文件的进度条.txt

📁 当读取一个大文件的时候
💻 TXT
字号:
/** 
* @(#) 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); 
     } 
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -