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