JMapViewer を使用するアプリケーションを作成しています。いくつかのスレッド (ThreadPoolExecutor で実行される) があり、表示されたマップに対して機能します (主に、MapMarkerCircle の作成/破棄と色の変更)。これはシングル スレッド ルールに違反しますか? SwingWorker の done() メソッドでマップ上で動作するコードを実行して、イベント ディスパッチ スレッドで実行されることを確認する必要がありますか?
ありがとう。
JMapViewer を使用するアプリケーションを作成しています。いくつかのスレッド (ThreadPoolExecutor で実行される) があり、表示されたマップに対して機能します (主に、MapMarkerCircle の作成/破棄と色の変更)。これはシングル スレッド ルールに違反しますか? SwingWorker の done() メソッドでマップ上で動作するコードを実行して、イベント ディスパッチ スレッドで実行されることを確認する必要がありますか?
ありがとう。
マーカーなどのセッターはJMapViewer
callrepaint()
で機能するため、それらがイベント ディスパッチ スレッドでのみ呼び出されるようにする必要があります。現在は正しく動作する可能性がありますが、スレッドセーフではないことrepaint()
が文書化されています。