文字をテキストエリアにリアルタイムで追加したいと思います。jTextAreaがループの最後まで更新されない
私はbrと呼ばれるバッファリングされたリーダーを持っています。テキスト領域に非常に長いプロセスを読み込んでいます。
cmd=ArrayOfCommandsWhichWorkProperly
Runtime run = Runtime.getRuntime() ;
pr = run.exec(cmd);
BufferedReader buf = new BufferedReader(new InputStreamReader(pr.getInputStream())) ;
while ((c=br.read()) >-1) {
String s=Character.toString((char)br.read());
//Why is this text box not updating?
jTextArea2.append(s);
}
仕方か何かでacelleratorがなければならないようだ... 問題は全体processsが完了するまで、それは更新されないということです。テキストボックスを更新するには何を追加できますか?
私はThread.sleepとThread.yeildを試しました。プロセスが完了するまで、jTextAreaは累積して更新されていないようです。
面白い...しかし、コードがファームウェアをデバイスにフラッシュしているので、インターフェイスをブロックしなければなりません。私はすべてのコントロールを無効にして、新しいスレッドを開始してから、スレッドレポートを元に戻すことができます。それとも良い方法がありますか? – AdamOutler
JTextAreaを含むモーダルダイアログを表示すると、更新が終了したらダイアログを閉じることができます。 – camickr
スイングワーカーは単純ですが.....それを説明するビデオを見つけることができますか? – AdamOutler