javax.swing

接口
异常
java.lang.Object
  继承者 java.io.InputStream
      继承者 java.io.FilterInputStream
          继承者 javax.swing.ProgressMonitorInputStream
所有已实现的接口:
Closeable

public class ProgressMonitorInputStream
     
extends FilterInputStream

监视读取某些 InputStream 的进度。大致用以下形式调用此 ProgressMonitor:

 InputStream in = new BufferedInputStream(
                          new ProgressMonitorInputStream(
                                  parentComponent,
                                  "Reading " + fileName,
                                  new FileInputStream(fileName)));
 

这可以创建一个进度监视器,以监视读取输入流的进度。如果需要一段时间,将会弹出 ProgressDialog,以通知用户。如果用户单击 Cancel 按钮,则在进行下一次读取操作时会抛出 InterruptedIOException。当关闭流时,会执行所有的正确清除。

有关此内容的更多文档和示例,请参阅 The Java Tutorial 中的 How to Monitor Progress 一节。

另请参见:
ProgressMonitor, JOptionPane

字段摘要
 
从类 java.io.FilterInputStream 继承的字段
in
 
构造方法摘要
ProgressMonitorInputStream(Component parentComponent, Object message, InputStream in)
          构造一个对象,以监视输入流的进度。
 
方法摘要
 void close()
          重写 FilterInputStream.close,以便关闭进度监视器以及流。
 ProgressMonitor getProgressMonitor()
          获取此流使用的 ProgressMonitor 对象。
 int read()
          重写 FilterInputStream.read,以便在读取之后更新进度监视器。
 int read(byte[] b)
          重写 FilterInputStream.read,以读取之后更新进度监视器。
 int read(byte[] b, int off, int len)
          重写 FilterInputStream.read,以便在读取之后更新进度监视器。
 void reset()
          重写 FilterInputStream.reset,以重置进度监视器以及流。
 long skip(long n)
          重写 FilterInputStream.skip,以便在跳过之后更新进度监视器。
 
从类 java.io.FilterInputStream 继承的方法
available, mark, markSupported
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

ProgressMonitorInputStream

public ProgressMonitorInputStream(Component parentComponent,
                                  Object message,
                                  InputStream in)
构造一个对象,以监视输入流的进度。

参数:
message - 要在对话框(如果弹出)中放置的描述性文本。
parentComponent - 触发被监视操作的组件。
in - 要监视的输入流。
方法详细信息

getProgressMonitor

public ProgressMonitor getProgressMonitor()
获取此流使用的 ProgressMonitor 对象。通常不需要上述操作,除非您要通过读取文件执行一些中途更改描述性文本的操作。

返回:
此对象使用的 ProgressMonitor 对象

read

public int read()
         throws IOException
重写 FilterInputStream.read,以便在读取之后更新进度监视器。

覆盖:
FilterInputStream 中的 read
返回:
下一个数据字节;如果已到达流末尾,则返回 -1
抛出:
IOException - 如果发生 I/O 错误。
另请参见:
FilterInputStream.in

read

public int read(byte[] b)
         throws IOException
重写 FilterInputStream.read,以读取之后更新进度监视器。

覆盖:
FilterInputStream 中的 read
参数:
b - 存储读取数据的缓冲区。
返回:
读入缓冲区的字节总数,如果因为已经到达流末尾而没有更多的数据,则返回 -1
抛出:
IOException - 如果发生 I/O 错误。
另请参见:
FilterInputStream.read(byte[], int, int)

read

public int read(byte[] b,
                int off,
                int len)
         throws IOException
重写 FilterInputStream.read,以便在读取之后更新进度监视器。

覆盖:
FilterInputStream 中的 read
参数:
b - 存储读取数据的缓冲区。
off - 目标数组 b 中的起始偏移量。
len - 读取的最大字节数。
返回:
读入缓冲区的字节总数,如果因为已经到达流末尾而没有更多的数据,则返回 -1
抛出:
IOException - 如果发生 I/O 错误。
另请参见:
FilterInputStream.in

skip

public long skip(long n)
          throws IOException
重写 FilterInputStream.skip,以便在跳过之后更新进度监视器。

覆盖:
FilterInputStream 中的 skip
参数:
n - 要跳过的字节数。
返回:
跳过的实际字节数。
抛出:
IOException - 如果流不支持搜索,或者发生其他 I/O 错误。

close

public void close()
           throws IOException
重写 FilterInputStream.close,以便关闭进度监视器以及流。

指定者:
接口 Closeable 中的 close
覆盖:
FilterInputStream 中的 close
抛出:
IOException - 如果发生 I/O 错误。
另请参见:
FilterInputStream.in

reset

public void reset()
           throws IOException
重写 FilterInputStream.reset,以重置进度监视器以及流。

覆盖:
FilterInputStream 中的 reset
抛出:
IOException - 如果已经标记了该流,或者标记已经无效。
另请参见:
FilterInputStream.in, FilterInputStream.mark(int)