1

要素を実際にJList自体に追加する方法は知っていますが、更新が実際に行われるときにイベントログ(JListとDefaultListModelを使用)を更新する方法がわかりません。アプリケーションがフリーズし、終了するとすべてのエントリが表示されるようです。助けてください?

4

1 に答える 1

3

SwingイベントディスパッチスレッドまたはEDTを実行時間の長いプロセスに縛り付けている場合、Swingの同時実行性の問題が発生していると100%確信しています。問題は、Swingの偶数スレッドがすべてのSwingの描画とユーザーの操作を実行する責任があることです。ファイルやデータベースの入力や出力など、長時間実行されるプロセスと連携していると、その責任を果たせなくなり、GUI全体がフリーズします。解決策は、SwingWorkerなどのバックグラウンドスレッドを使用して、長時間実行されるプロセスがEDTを拘束しないようにすることですが、JListやEDT上のそのモデルなどのSwingコンポーネントを更新するように注意してください。

問題とその解決策の詳細については、 Swing同時実行チュートリアルを確認してください。

于 2012-07-07T21:23:35.100 に答える