javax.swing.SwingWorker
初めて使用しています。
JLabel
次のように、swing ワーカーによって公開された中間結果からa を更新したいと思います。
publish("Published String");
を更新するためJLabel
に、次のようにコーディングしました。
process(List<String> chunks) {
if (chunks.size() > 0) {
String text = chunks.get(chunks.size() - 1);
label.setText(text);
}
}
上記のコードは機能しますが、私の問題 (より具体的には、私の疑問) は次のとおりです。
上記の Swing ワーカー タスクは匿名の内部クラスであるため、label
フィールドにアクセスできます。
しかし、swing ワーカー クラスを非インナー クラスにしたい場合はどうすればよいでしょうか。label
process() メソッドがアクセスできるように、swing ワーカー クラスのコンストラクターに引数として渡す必要がありますか。
または他の方法はありますか?
Swing ワーカー クラスが内部クラスでない場合、Swing ワーカー クラスの結果から UI コンポーネントを更新するために、他の開発者はどのようなアプローチに従いますか?