使用现有JProgressBar的Java ProgressMonitorInputStream

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

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

这完全正常,并弹出一个新的JFrame窗口,其中包含一个显示输入流进度的进度条。

有没有让ProgressMonitorInputstream更新另一个JFrame中存在的现有JProgressBar?

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

我错了吗?

任何投入将不胜感激。

谢谢

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

附录:作为一个具体示例,在演示中添加进度条:

 private JProgressBar bar = new JProgressBar(); 

在面板的构造函数中添加它:

 this.add(bar); 

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

 bar.setValue(progress);