2012-01-28 56 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