您需要告诉Swing组件是半透明的,因此在重新绘制更改的组件时,它也确实会绘制背景。为此,您的组件必须
false从
isOpaque()方法中返回(这可以通过
setOpaque(false)没有子类重写
isOpaque来执行其他 *** 作的方式来实现)。
有了它,它应该可以正常工作,而无需对其他所有内容进行任何手动重绘,如其他答案所建议的那样。(我已经做过一次。)
编辑:
原因是Swing使用了优化的重绘算法,仅重绘那些确实需要重绘的组件(例如,在某些输入后为JTextField)或在这些组件前面的组件,只要它们是不透明的即可。当需要重涂的组件不是不透明的(=用不透明的颜色填充整个空间)时,也需要重涂组件后面的组件。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)