Java JPanel重绘问题

时间:2020-03-05 18:41:44  来源:igfitidea点击:

我有一个Java swing应用程序,其面板包含三个无法正确绘制的JComboBoxe
combox框仅显示为右侧的向下箭头,但没有当前所选值的标签。
如果将窗口的大小调整为一个像素甚至更大或者更小,则这些框将正确地重新绘制。

我所有的谷歌搜索都指向在JPanel上调用revalidate()来解决此问题,但这对我没有用。
JPanel上调用updateUI()已将其从始终显示不正确变为一半时间显示不正确。

其他人是否看到过这种情况,并找到了另一种方法来强制重新绘制组合框?

解决方案

回答

我们能否向我们提供更多有关如何将组合框添加到JPanel的信息?这在Swing中是很常见的事情,因此我怀疑这是JVM问题,但我想一切皆有可能。

具体来说,我会仔细检查以确保我们没有从任何后台线程访问GUI。在这种情况下,也许我们正在从数据库或者其他内容中读取选择,并从后台线程更新JComboBox,这在Swing中是一个很大的禁忌。请参阅SwingUtils.invokeLater()。