2009-07-28 11 views

答えて

6

SwingWorkerはこれを行うために設計されたものです。

これにより、GUIをブロックしないタスクを実行してから、値を返して、完了したらGUIを更新できます。

JavaはSwingWorkerの使用方法についてはgreat tutorialです。

基本的にデータベースはdoInBackground()メソッドで取得します。そして、done()メソッドで、GUIを更新します。

5

jinguyが述べたように、SwingWorkerはあなたが最初に見るべき場所です。 Wikipediaには、JavaDocsに取り組む前に見ておくとよいかもしれない興味深い例がいくつかあります。

+0

私はウィキペディアにこのような素晴らしい記事がSwingWorkerであったことは知らない。私はあなたをアップアップしたいと思いますが、並べ替え順の上に私の場所を失いたくない...(申し訳ありません) – jjnguy

+0

そこに行くよ。 '+ 1'! – jjnguy

+0

Grrしかし、あなたがupvotesを取得し続けるなら、私は決してあなたを 'Questions tag Java':P ' – jjnguy

2

ここで述べたように、SwingWorkerはここで複雑さを抽象化するのに役立ちますが、基本的に新しいスレッドで作業を行い、メソッドが戻ったらスイングスレッドのGUIを更新する必要があります。 SwingWorkerを使用していない場合、基礎となるメソッドはSwingUtilities(またはEventQueue).invokeLater(Runnable)です。

スイングキューの外側にあるスイング関連(モデルを含む)は何も更新しないため、予測できないことが起こります。また、キューへの参照を保持したり、そのキューを使用したりしないでください(たとえば、モデルダイアログボックスを開いた場合など)。

関連する問題