現在、私は実際に仕事をするには常にSwingWorker
を作成し、別のものはPipedReader
で出力を処理します。SwingWorkerは出力と作業の両方に対応していますか?
私は2つを組み合わせたいと思っていますが、私の状況では簡単な方法はありません。
- が
- 受信日常GUIに
converter
の進捗状況に関する最新情報を表示する(この場合には、converter
)の作業を行い既製のオブジェクトを持っている:は私がいることを考えると
converter
がタスクを終了して戻るときのオブジェクト。
2 SwingWorkersせずにこれを行う方法はありますか?
編集:converter
はSwingWorker
を拡張することがオプションではないことに注意してください。
編集2:下記のコメントに対する回答。これは、大規模なチャンク(txt形式)を処理し、何が間違っているのか、あるいは何が決定されたのかをユーザに知らせる、より大きなGUIアプリケーションの一部です。
サンプルコード(使用されていない、純粋に説明):
//SwingWorker 1
@Override
protected Void doInBackground() {
outputWorker.useInStream(new PipedReader(outStream));
outputWorker.execute();
converter.usePipedWriter(outStream);
Output object2=converter.Convert(object1);
}
//SwingWorker 2
@Override
protected Void doInBackground() {
while(inStream.hasNext()) {
publish(inStream.next());
}
}
は、なぜあなたはすべてでSwingWorkerのが必要なのでしょうか?これはUIに触れていますか? – ControlAltDel
@ user1291492はいです。 30メガバイトのテキストファイルを処理し、ユーザーに何が決定されたかを見せさせる。 – Sheriff