私は最近、Sun / Oracleの最新のガイドラインでは、コンストラクターを含むSwingオブジェクトのSwingメソッドをEDTの外部で呼び出す必要がないと述べていることを知りました。
同じ厳密さの基準がすべての「ビジュアル」AWTクラスにも適用されますか?そうでない場合、それらのルールは何ですか?
後で
re Swing and EDT:2009年からの議論。
引用:「実際のスレッドセーフと、可視性や同期などの関連する問題に加えて、ソフトウェアの問題があると思います。Swingコンポーネントには、ある種の「リスナー」があり、これらのリスナーはEDTで実行するように設計されています。
これらのリスナーは非同期であり、イベント(プロパティの変更など)に応答するため、GUIを構築するときにこれらのリスナーを起動させることができます。その結果、メインスレッドで構築しているときに、一部のリスナーがEDTで実行され、一部のリスナーが他のスレッドでも実行されている可能性があります(リスナーが混乱して間違ったスレッドで起動するため)。その結果、予測できない大きな混乱が生じます。」
多分彼らは彼らが何について話しているのかわからないでしょう...しかし今のところ私は「申し訳ないより安全な」アプローチを取っています。また、Potochkin(http://weblogs.java.net/blog/alexfromsun/archive/2006/02/debugging_swing.html )は、後のより厳格なルールに精通していることを読んでいるようです。