知识大全 怎样在Java实例开发的过程中使用进度条

Posted

篇首语:眼前多少难甘事,自古男儿当自强。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 怎样在Java实例开发的过程中使用进度条相关的知识,希望对你有一定的参考价值。

怎样在Java实例开发的过程中使用进度条  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  在读取大型文件或者其它大批量数据输入操作时 希望能够通过一个进度条显示当前的进度 现在在Java中非常容易实现 仅仅需要几行代码即可 Java的swing包提供了ProgressMonitorInputStream类 该类提供了自动地弹出进度窗口和事件处理机制     使用这个类也非常方便 只需要把任何一个InputStream作为参数 构造一个新的ProgressMonitorInputStream类 其它不需要任何额外的代码 即可实现进度窗口的自动生成 ProgressMonitorInputStream类可以和其它InputStream一样使用      ProgressMonitorInputStream类继承层次    [pre]java lang Object  |  + java io InputStream  |  + java io FilterInputStream  |  + javax swing ProgressMonitorInputStream[/pre]     构造方法    ProgressMonitorInputStream  (Component parentComponent   Object message InputStream in)  parentComponent 触发被监视操作的组件  message (如果弹出进度显示窗口)   显示在进度显示窗口中的指示信息  in 需要监视的输入流     操作方法    除了在InputStream和FilterInputStream中继承的方法外 还增加了如下方法     ProgressMonitor getProgressMonitor()  //得到当前对象使用的ProgressMonitor对象   int read()  int read(byte[] b)  int read(byte[] b int off int len)  void reset()  long skip(long n)  //上面几个方法都是覆蓋了FilterInputStream中的方法   因为需要更新进度指示   void close()  //因为需要关闭进度监视对象和窗口   所以覆蓋了FilterInputStream父类中的close方法      示例代码:    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;    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中   //在当前目录中需要放置一个大文件 建议超过 M  InputStream in = new FileInputStream( bigfile dat );  ProgressMonitorInputStream pm =  new ProgressMonitorInputStream(f Reading a big file in);  // 读取文件 如果总耗时超过 秒   将会自动弹出一个进度监视窗口   //  显示已读取的百分比   int c;  while((c=pm read()) != )    // 处理代码    pm close();    catch(Exception ex)    ex printStackTrace();       start();  );    // 设置缺省的窗口关闭行为 并显示窗口   f setDefaultCloseOperation  (JFrame EXIT_ON_CLOSE);  f setVisible(true);     cha138/Article/program/Java/hx/201311/25629

相关参考

知识大全 java nio 开发实例

  首先了解下所谓的javanio是个什么东西!  传统的并发型服务器设计是利用阻塞型网络I/O以多线程的模式来实现的然而由  于系统常常在进行网络读写时处于阻塞状态会大大影响系统的性能自Java开始

知识大全 通过实例看VCL组件开发全过程

通过实例看VCL组件开发全过程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在这篇文章中我们将

知识大全 浅谈Java网站开发过程中的优势

浅谈Java网站开发过程中的优势  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java是一种被

知识大全 在ASP.NET中显示进度条

在ASP.NET中显示进度条  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  对于加载时间比较长的

知识大全 怎样利用Hibernate开发Blog实例分析

怎样利用Hibernate开发Blog实例分析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  开

知识大全 jquery 滚动条事件简单实例

这篇文章介绍了jquery滚动条事件的简单实例有需要的朋友可以参考一下 复制代码代码如下:cha138/Article/program/Java/JSP/201311/20441

知识大全 通过实例看VCL组件开发全过程(二)

通过实例看VCL组件开发全过程(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n

知识大全 通过实例看VCL组件开发全过程(三)

通过实例看VCL组件开发全过程(三)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 四组件属性编辑

知识大全 通过实例看VCL组件开发全过程(一)

通过实例看VCL组件开发全过程(一)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n

知识大全 VB.NET多线程开发实例

同Java一样简单!VB.NET多线程开发实例  以下文字资料是由(历史新知网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  VBNET