Java Swing:组件';背景

Java Swing:组件';背景,java,swing,Java,Swing,我有一个问题,程序不同部分的swing组件有时有错误的背景。例如或 正如我所提到的,这个bug不是永久性的,它可以一次出现在一个地方,以后再也不会出现。但仍然有一些地方,我可以随机复制它。不幸的是,我没有看到任何解决方案 有人知道如何修复它吗?如果您将组件设置为非不透明(我认为调用是setOpaque(false)),这将让位于顶部的组件的背景颜色显示出来。除了Paul所说的,如果您使用自制组件,还有一个问题 此类组件应在绘制回调中保留其完整的占用区域(或至少是无效区域)。在移动或调整大小时,经

我有一个问题,程序不同部分的swing组件有时有错误的背景。例如或

正如我所提到的,这个bug不是永久性的,它可以一次出现在一个地方,以后再也不会出现。但仍然有一些地方,我可以随机复制它。不幸的是,我没有看到任何解决方案


有人知道如何修复它吗?

如果您将组件设置为非不透明(我认为调用是
setOpaque(false)
),这将让位于顶部的组件的背景颜色显示出来。

除了Paul所说的,如果您使用自制组件,还有一个问题

此类组件应在绘制回调中保留其完整的占用区域(或至少是无效区域)。在移动或调整大小时,经常会出现导致奇怪瑕疵的错误是,只重新绘制“重要”部分,例如要显示的字符串,而不绘制背景


在这种情况下,以前在那里显示的任何内容都会显示出来。

-1,发布您的SSCCE()演示问题。哇,这是一个不同寻常的屏幕截图!如果你发布一些代码示例,这将非常有帮助。抱歉,但是应用程序非常大,而且bug不会不断地自我复制,很难发布有用的示例。谢谢,这很有意义。那么,你能回答另一个问题吗:这个问题是否与更改对话框的内容有关?这在很大程度上取决于你如何更改它。正确的方法是什么?例如,在更改标签时,我调用了repaint()。问题在于不透明度。我在外观上将默认面板不透明度设置为非不透明,这就是重新绘制时出现问题的原因。感谢您的回复,但我自己已经解决了这个问题