【发布时间】:2011-06-20 16:17:44
【问题描述】:
我有一个小型 Java 桌面应用程序,它需要能够通过分别单击“+”和“-”按钮来动态添加和删除字段。我已经通过调用 revalidate() 然后 repaint() 在所有父容器上一直到 ActionListener 中的 JFrame 来实现这一点。
这似乎成功了,但有时它不起作用,并且 JPanel 无法正确调整大小。这种情况很少发生,似乎是随机的,让我相信这可能是一个并发问题。我已经尝试从事件调度线程启动父容器,但这并没有解决问题。
这实际上是一个并发问题还是我找错了树?任何人都知道发生了什么以及如何解决?
非常感谢
-SwingNoob
【问题讨论】:
-
间歇性错误通常表明存在并发问题,但我认为根据所提供的信息,没有人能够为您提供可靠的答案。
-
@mre:请澄清您的评论,因为根据我的经验和阅读情况,删除项目时需要在容器上调用
revalidate和repaint以及revalidate和有时 @987654324 @ 添加组件时。 -
@Hovercraft,我收回我的声明——事实上你是对的。 @john,我为我的困惑道歉……请忽略我上面的评论。
-
@john,如果您提供一小段相关代码的 sn-p 将会很有帮助。
-
@Hovercraft Full Of Eels,@mre hmmm 10:1 那是关于 invokeLater() :-)