Swingは、シングルスレッド設計になっています。 これはつまり、Swingにて各コンポーネントの描画およびイベントのディスパッチ処理などは 一つのスレッドで行われるという事になります。 その処理を実際に行うスレッドをイベントディスパッチスレッドといいます.(Event Dispatch Thread: EDT) Swingでアプリを作成する場合、この点をしっかり考慮しないと変なバグがでます。 (いきなりArrayIndexOutOfBoundExceptionやNullPointerが発生したり) そして、Swingには上記の点に関連して以下のルールが存在します。 Sun Developer Network(SDN)のThreads and Swingより抜粋 http://java.sun.com/products/jfc/tsc/articles/threads/threads1.h