7
我有一個多線程的Java Swing應用程序。Java Swing多線程訪問JTextArea
有幾個線程會通過textArea.append("something")
寫入JTextArea
來調用該方法。我應該這樣包裝它:
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
textArea.append("something");
}
});
或者它只是一個內容更新和Swing會做正確的線程本身?
對'JTextArea#append(...)'的調用應排隊到Swing事件線程上,以最安全,最好地工作。 –
你的方法是一個好的開始。問題是,你關心更新發生的順序嗎?如果你這樣做,那麼你手上有一個大問題;) – MadProgrammer
其實沒有。我有一個相反的問題 - 你是指擺動順序或方法調用的順序嗎?該方法有一個計數器,它標記消息(日誌)。但是,你的意思是Swing能否以錯誤的順序顯示編號的消息?那麼,我應該使用這種包裝? – Luo