2012-01-28 59 views
1

我已粘貼我的源代碼here。這個想法是在應用程序中收集錯誤消息和警告,其中每個消息是一個段落,每個段落描述帶有屬性的文本部分。無論如何,我所做的文本面板不會顯示任何文本 - 我想我在這裏遇到了一些基本的錯誤。我可以用一些想法 - 事先感謝,夥計們。JTextPane內容永遠不會更新 - 我做錯了什麼?

+2

更好地發佈一個好的[SSCCE](http://sscce.org/),因爲你所指的代碼並沒有以任何方式完成。問候 – 2012-01-28 13:35:26

回答

3

1)你有問題與Concurency,Swing是單線程的後臺任務的所有改變應該被調用EDT,

2)更好地將初始化從SwingworkerRunnble#Thread那些代碼,

3)如果你不想解決您的GUI會毫無反應或凍結durring這個任務,然後包裏面invokeLater

+0

我認爲你的意思是沒有反應,也沒有不負責任;) – npinti 2012-01-28 09:43:44

+0

對於EDT的+1,好像是這樣的問題:-)問候 – 2012-01-28 09:47:58

+0

我試圖調用從SwingUtilities.invokeLater中的runnable中寫入文本窗格的方法 - 它沒有工作:(對於EDT的 – Jay 2012-01-28 11:25:46

3

需要通過使用SwingUtilities.invokeLater方法來進行的所有GUI改變輸出到Document。這將在EDT上放置你需要的東西,然後執行並在屏幕上顯示你的文字。

+0

+ 1,似乎是這樣的問題:-)問候 – 2012-01-28 09:48:04

+0

不適用於SwingUtilities.invokeLater :( - 文本面板永遠不會得到更新。 – Jay 2012-01-28 11:26:25

+0

@ Jay:然後[sscce](http:///sscce.org/)更爲重要。 – trashgod 2012-01-28 14:38:27