2012-02-17 29 views
3

Javaを完全に新しくして、私は完全なレンガの壁にいます。JTextAreaを自動的に更新

ライブアップデートが必要な私のシステムにJTextAreaがあるので、何かが(データベースの)table2に追加されると、私のサーバーはデータベースから新しい値を取り出してJTextAreaを更新します。

これを行う方法は全くわかりませんが、私はそれを動作させるためにスレッドを使用する必要があります。

どれ/すべてのヘルプは非常に何ができるか(私はこれに時間のために少し押されてる)

答えて

4

を高く評価しているが、時間の一定期間であなたのスレッドの世論調査データベースを持っているか、あるいは、プロセスを持っていますあなたのGUIクラスが拾うことができる何らかの種類のイベントをデータベースで更新しています。

これが発生すると、SwingUtilities.invokeLater()を使用してJTextAreaを更新できます。このような何かを行う必要があります。

if (eventIsFired) 
{ 
    final String jtextAreaText = ... 
    SwingUtilities.invokeLater(new Runnable() 
    { 
     @Override 
     public void run() 
     { 
      jTextArea.setText(jTextAreaText); 
     }    
    }); 
} 

を仮定はjTextAreaがグローバル変数として宣言されている実際のJTextAreaにあるということです。 jTextAreaTextは、内部クラスを介してアクセスできるようにfinal宣言する必要があります。

+0

ありがとう - 私はそれを理解していると思います - どのようにデータベースを更新してサーバーに通知するイベントを実行させるのですか? – Krath

+0

@Krath:私の知る限り、データベースにはそのことをさせることはできませんが、データベースを更新するアプリケーションを制御していれば、ファイルへの書き込みやフラグの設定などのイベントを発生させることができますデータベースの列。また、データベースから読み込み、 'JTextArea'が自分のアプリケーションから更新する必要があるかどうかを判断することもできます。 – npinti

関連する問題