カプセル化されたクラスではないSwingWorkerクラスで、情報の受け渡し、進行状況の更新、および「完了」の表示に問題があります。
ハードドライブ上のファイルとディレクトリを処理する単純なクラスがあります。ユーザーが[スタート]ボタンをクリックすると、SwingWorkerのインスタンスが起動します。
プログレスバーを更新するために、SwingWorkerからのイベントドリブンスレッドのJTextAreaで処理されるファイルの名前を印刷したいと思います。Web上のすべての例はネストされたクラス用であり、ネストされたクラスは外部クラス(done
メソッドなど)の変数にアクセスします。また、EDTが[スタート]ボタンの有効化(およびフィールドのクリア)などのアクションを実行できるように、SwingWorkerが終了したことをイベントドリブンスレッドに通知したいと思います。
私の質問は次のとおり です。1。SwingWorkerクラスは、イベントドリブンスレッドのJTextAreaにテキストをどのように配置し、プログレスバーを更新しますか?
- EDTは、{ external } SwingWorkerスレッドがいつ終了したかをどのように判断しますか?
{多くのコード(および処理)が実行されるため、SwingWorkerをネストされたクラスとして使用したくありません。}