JavaSwingのスレッドモデルが間違っていると何度も耳にしました。理由はよくわかりません。問題はDrawable
、メインUIスレッド以外の別のスレッドから描画できるという事実に関連していることを知っています。のようなユーティリティ機能がSwingUtilities.invokeAndWait
ありSwingUtilities.invokeLater
、でペイントを実行できることを知っていますRunnable
。これは、EventDispatcherスレッドによって実行されます。このようにして、ペイントが同期的に行われ、バッファが不整合な状態のままにならないようにすることができると思います。
私の質問は、「優れた」UIツールキットはどのように動作するのかということです。どのようなソリューションが採用されていますか?