0
我想實時追加一個字符到文本區域。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
Swing Worker只是簡單的.....你能找到解釋它的視頻嗎? – AdamOutler