0

スレッドを実行したいのですが、特定の時間間隔が経過すると結果が得られるはずです。その結果をで表示したいと思いJTextAreaます。スレッドからイベントを作成するにはどうすればよいJTextAreaですか?

4

1 に答える 1

2

これは、バックグラウンドタスクをどのように確立したかによって異なります。

プレーンThreadまたはを使用している場合Runnableは、イベントディスパッチスレッド(ETD)に対してイベントを発生させる必要があります。これにより、UIに加えた変更がEDT内で確実に行われるようになります。

Swingは、EDT内Runnableでメソッドが実行されるイベントキューにをエンキューできるようにする単純なメカニズムを提供します。run

// Inside you thread...
// Some block action...

SwingUtilities.invokeLater(new Runnable() {
    public void run() {
        // Executing within the EDT...
    }
});

を見てみましょう

より簡単な解決策SwingWorkerは、プレーンの代わりにを使用することThreadです。doneこれにより、inメソッド(EDT内で実行されます)内のワーカーの完了時にアクションを実行できます。

を見てみましょう

于 2012-10-14T22:26:20.517 に答える