2011-07-31 22 views
0

GUi /内部アプリケーション通信を処理する最適な方法は何ですか?私はデータを処理する多くの基底のスレッドを持っており、その出力をGUIに投稿したいと考えています。GUI /アプリケーション通信

私のすべてのランナブルが所有する何らかのハンドラオブジェクトを持っていて、それらに投稿させると、GUIに出力することができますか?

答えて

2

私は通常、その種の通信にobserver patternを使用します。だから、基本的にあなたのスレッドクラスは共通のインタフェース(addObserver())を実装してオブザーバブルにし、GUIコントローラ/ビューはオブザーバインタフェース(fireNewEvent())を実装します。スレッドが何らかの新しいコンテンツを生成した場合、オブザーバ上のメソッドを呼び出します。プロジェクトによっては、のオブザーバー(たとえばfireNewEvent(Event e))にプッシュするか、またはオブザーバーがそれ自身の情報にアクセスすることができます(プル)。基本的に、これはあなたのアイデアと、複数のオブザーバーに通知する柔軟性(必要な場合)です。

0

長いタスクを実行しているときにUIをフリーズしないようにスレッドを使用している場合は、SwingWorkerが役に立ちます。