2

我只是在玩 Java 的 ProgressMonitorInputStream 来监视流经 BufferedInputStream 的数据。这是我目前正在尝试的代码:

InputStream in = new BufferedInputStream(
     new ProgressMonitorInputStream(
     new JFrame(),"Scanning",new FileInputStream(dir.getSearchInputFile())));

这工作得非常好,并弹出一个带有进度条的新 JFrame 窗口,显示输入流的进度。

是否有办法让 ProgressMonitorInputstream 更新另一个 JFrame 中存在的现有 JProgressBar?

我尝试了各种方法,例如使用构造函数传入 JProgressBar,或者尝试在参数中指定框架。每次我尝试,我都会得到一个新的 JFrame。

我对这一切都错了吗?

任何投入将不胜感激。

谢谢

4

1 回答 1

5

谁的SwingWorker进度被监控并不关心谁在听。只需PropertyChangeListener在另一个框架中实现接口并将侦听器添加到worker,如图所示ProgressMonitorDemo

附录:作为一个具体的例子,给demo添加一个进度条:

private JProgressBar bar = new JProgressBar();

将其添加到面板的构造函数中:

this.add(bar);

在面板的propertyChange()监听器中更新它:

bar.setValue(progress);
于 2011-12-04T23:47:12.493 回答