2

BufferedInputStream を流れるデータを監視するために、Java の ProgressMonitorInputStream をいじっているだけです。これが私が現在試しているコードです:

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し、ワーカーにリスナーを追加するだけProgressMonitorDemoです。

補遺: 具体的な例として、デモにプログレス バーを追加します。

private JProgressBar bar = new JProgressBar();

パネルのコンストラクターに追加します。

this.add(bar);

パネルのpropertyChange()リスナーで更新します。

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