-1

重複の可能性:
swingworkerクラスを使用してtextareaにテキストを追加するにはどうすればよいですか?

jtextareaにforループの多くの行を追加します。行を追加すると、テキストに行が表示されませんが、forループが終了するとすべての行が表示されます。各行を1つずつ表示するにはどうすればよいですか?

4

2 に答える 2

2

Event Dispatching Threadでプロセスを実行しないでください。再描画の更新がブロックされます。

SwingWorker APIを利用する必要があります

また、ご覧ください

何をしているか当ててみよう

while (doSomeWork) {
   // do some processing
   textArea.append(someText);
}

またはおそらくforループ

そして、UI が魔法のように更新されることをどのように期待していますか?

残念なことに、私はそのように機能することを望んでいますが、そのようには機能しません。

画面を更新するには、イベント ディスパッチ スレッドの実行を継続できるようにする必要があります。これにより、再描画要求 (およびその他の重要な処理) を処理できるようになります。処理を別のスレッドにオフロードする必要があります。

いいえ、他に方法はありません。最も簡単な方法は、SwingWorker を使用することです。

于 2012-08-15T08:02:34.283 に答える
0

よくわかりませんが、for ループでこれを使用します: jTextArea.updateUI();

于 2012-08-15T08:29:30.547 に答える