1

JMapViewer を使用するアプリケーションを作成しています。いくつかのスレッド (ThreadPoolExecutor で実行される) があり、表示されたマップに対して機能します (主に、MapMarkerCircle の作成/破棄と色の変更)。これはシングル スレッド ルールに違反しますか? SwingWorker の done() メソッドでマップ上で動作するコードを実行して、イベント ディスパッチ スレッドで実行されることを確認する必要がありますか?

ありがとう。

4

1 に答える 1

2

マーカーなどのセッターはJMapViewercallrepaint()で機能するため、それらがイベント ディスパッチ スレッドでのみ呼び出されるようにする必要があります。現在は正しく動作する可能性がありますが、スレッドセーフではないことrepaint()が文書化されています。

于 2015-05-28T14:58:59.157 に答える