三大原因…
- 顶层容器不是双缓冲的,在重新绘制框架时会导致闪烁,是的,您可以实现自己的双缓冲,但是…
- 在框架内绘画不会考虑框架边框,这意味着可以在框架边框下绘画。边框也取决于平台/外观,这意味着尺寸会发生变化
- 对于Swing窗口,窗口上已经存在一些组件,这意味着它们在大多数情况下都被覆盖(或被覆盖)(由于Swing中优化的绘画引擎),因此难以生产合理的结果
对于第2点,框架装饰绘制在“窗口”边界之内,而不是在它们之外
更多细节
花些时间通读AWT中的绘画和Swing和执行自定义绘画以获取更多详细信息



