1

約 1500 ノードのグラフの情報を収集するために Web サービスを呼び出しています。ノードとエッジを継続的に追加しながら、グラフをPrefuseに表示しています。ほとんどの場合、これはうまく機能しているように見えますが、時々アプリ全体がフリーズし、回復する唯一の方法は、アプリケーションを強制終了して最初からやり直すことです。これが発生した場合、例外は出力されません。他の場合でも、「IllegalArgumentException: Invalid row index: -1」というメッセージが頻繁に表示されますが、これはアプリのフリーズとは関係がないようです。

アプレットでのフリーズに関する関連する質問を見ましたが、アプリはアプレットではなく JFrame で実行されています。これが私たちの問題である場合に備えて、コードのさまざまな場所で ActivityManager.stopThread() (kill メソッドが見つかりませんでした) を呼び出してみました。これは、違いがあるとしても、それほど違いはないようです。

グラフの編集中にprefuseがグラフを表示する ためのスレッドセーフな方法はありますか?

4

1 に答える 1

0

グラフの編集中にグラフを表示するスレッドセーフな方法はありますか?

GUI に対するすべての更新は、EDT で行う必要があります。SwingWorker を使用します。

詳細については、Swingでの同時実行を参照してください。

于 2012-01-16T17:12:49.750 に答える