2012-08-15 200 views

回答

2

不要在Event Dispatching Thread中執行您的進程,它會阻止發生重繪更新。

你應該利用SwingWorker API的

而且,看看

讓我猜猜你在做什麼

while (doSomeWork) { 
    // do some processing 
    textArea.append(someText); 
} 

或者可能是for循環

而你是,一些如何期待用戶界面神奇地更新?

毫無疑問,儘管我很喜歡它的工作方式,但並不是那樣工作。

爲了讓屏幕更新,您必須允許事件派發線程繼續運行,因此它可以處理重新繪製請求(&一堆其他重要的事情),您需要將處理卸載到另一個線程。

沒有,沒有任何其他的辦法了,&最簡單的方法是使用的SwingWorker

+0

我不明白。舉一些例子嗎?這是更簡單的方法嗎? – 2012-08-15 08:08:30

+1

閱讀一些鏈接。如果你有一個特定的問題,要麼搜索SO或發佈一個新的問題 – MadProgrammer 2012-08-15 08:18:54

+0

請給出一些代碼示例。我想像你寫的那樣在循環中添加行。 – 2012-08-15 09:11:43

0

我不知道,但在使用這個你的for循環: jTextArea.updateUI();

+0

它不工作我試試吧 – 2012-08-15 08:41:08

+0

嘗試jframe.updateUI();或jpanel.updateUI();太。 – Amir 2012-08-15 08:45:21

+0

不,它不工作太 – 2012-08-15 09:11:14