题
我有一个 Java swing 应用程序,其面板包含三个 JComboBoxe
无法正确绘制的内容。
组合框仅显示为右侧的向下箭头,但没有当前所选值的标签。
如果窗口的大小调整得更大或更小,即使是一个像素,这些框也会正确地重新绘制。
我所有的谷歌搜索都指向打电话 revalidate()
在 JPanel
来解决这个问题,但这对我来说没有用。
呼唤 updateUI()
在 JPanel
已将其从始终显示不正确更改为一半时间显示不正确。
有没有其他人看到过这一点并找到了强制重绘组合框的不同方法?
解决方案
您能否向我们提供有关如何将组合框添加到 JPanel 的更多信息?这是 Swing 中很常见的事情,所以我怀疑这是 JVM 问题,但我想一切皆有可能。
具体来说,我会仔细检查以确保您没有从任何后台线程访问 GUI。在这种情况下,也许您正在从数据库或其他东西读取选择,并从后台线程更新 JComboBox,这在 Swing 中是一个很大的禁忌。请参阅 SwingUtils.invokeLater()。
不隶属于 StackOverflow