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()。