同步操作将从 Stefan/Java8Source 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
/** Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.*********************/package javax.swing;import java.io.*;import java.awt.Component;/*** Monitors the progress of reading from some InputStream. This ProgressMonitor* is normally invoked in roughly this form:* <pre>* InputStream in = new BufferedInputStream(* new ProgressMonitorInputStream(* parentComponent,* "Reading " + fileName,* new FileInputStream(fileName)));* </pre><p>* This creates a progress monitor to monitor the progress of reading* the input stream. If it's taking a while, a ProgressDialog will* be popped up to inform the user. If the user hits the Cancel button* an InterruptedIOException will be thrown on the next read.* All the right cleanup is done when the stream is closed.*** <p>** For further documentation and examples see* <a href="https://docs.oracle.com/javase/tutorial/uiswing/components/progress.html">How to Monitor Progress</a>,* a section in <em>The Java Tutorial.</em>** @see ProgressMonitor* @see JOptionPane* @author James Gosling*/public class ProgressMonitorInputStream extends FilterInputStream{private ProgressMonitor monitor;private int nread = 0;private int size = 0;/*** Constructs an object to monitor the progress of an input stream.** @param message Descriptive text to be placed in the dialog box* if one is popped up.* @param parentComponent The component triggering the operation* being monitored.* @param in The input stream to be monitored.*/public ProgressMonitorInputStream(Component parentComponent,Object message,InputStream in) {super(in);try {size = in.available();}catch(IOException ioe) {size = 0;}monitor = new ProgressMonitor(parentComponent, message, null, 0, size);}/*** Get the ProgressMonitor object being used by this stream. Normally* this isn't needed unless you want to do something like change the* descriptive text partway through reading the file.* @return the ProgressMonitor object used by this object*/public ProgressMonitor getProgressMonitor() {return monitor;}/*** Overrides <code>FilterInputStream.read</code>* to update the progress monitor after the read.*/public int read() throws IOException {int c = in.read();if (c >= 0) monitor.setProgress(++nread);if (monitor.isCanceled()) {InterruptedIOException exc =new InterruptedIOException("progress");exc.bytesTransferred = nread;throw exc;}return c;}/*** Overrides <code>FilterInputStream.read</code>* to update the progress monitor after the read.*/public int read(byte b[]) throws IOException {int nr = in.read(b);if (nr > 0) monitor.setProgress(nread += nr);if (monitor.isCanceled()) {InterruptedIOException exc =new InterruptedIOException("progress");exc.bytesTransferred = nread;throw exc;}return nr;}/*** Overrides <code>FilterInputStream.read</code>* to update the progress monitor after the read.*/public int read(byte b[],int off,int len) throws IOException {int nr = in.read(b, off, len);if (nr > 0) monitor.setProgress(nread += nr);if (monitor.isCanceled()) {InterruptedIOException exc =new InterruptedIOException("progress");exc.bytesTransferred = nread;throw exc;}return nr;}/*** Overrides <code>FilterInputStream.skip</code>* to update the progress monitor after the skip.*/public long skip(long n) throws IOException {long nr = in.skip(n);if (nr > 0) monitor.setProgress(nread += nr);return nr;}/*** Overrides <code>FilterInputStream.close</code>* to close the progress monitor as well as the stream.*/public void close() throws IOException {in.close();monitor.close();}/*** Overrides <code>FilterInputStream.reset</code>* to reset the progress monitor as well as the stream.*/public synchronized void reset() throws IOException {in.reset();nread = size - in.available();monitor.setProgress(nread);}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。