2008年11月26日水曜日

Swing/EDT

 Swingはシングルスレッドモデルで、実際に動いているスレッドがEDT。
ここで長い処理をしたり、WaitやBlockをさせると画面描画関連が
すべて止まってしまうので、注意。
 Java6からは、Swingから非同期処理行うSwingWorkerが追加された。SwingWorkerのTutorial
Java5でもBackPortがある。SwingWorker-ackPort

SwingのDeBugなどに使用できるツール。Swingの処理速度の劣化原因を発見する。Detangler

 応用の一つで、ある一定の間隔が開くと処理を開始するWorkerの実装が紹介
されている。DelayedWorker
 たとえば、長いリストをスクロールしている時に早くスクロールすると
変化しないが、スクロールを止めたりゆっくりになると行の状態を表示
する機能などではこれがあると便利。

0 件のコメント: