【发布时间】:2011-10-04 20:15:46
【问题描述】:
我一直在玩Graphics2D 的一些简单绘画,并从这里的社区获得了一些非常好的帮助。
通过将代码从主要的 JFrame 类移到 JPanel 中,然后我将其添加到 JFrame 类中,我设法从我的“弹力球”中解决了闪烁问题,谁能告诉我为什么会有这么大的不同吗?
【问题讨论】:
我一直在玩Graphics2D 的一些简单绘画,并从这里的社区获得了一些非常好的帮助。
通过将代码从主要的 JFrame 类移到 JPanel 中,然后我将其添加到 JFrame 类中,我设法从我的“弹力球”中解决了闪烁问题,谁能告诉我为什么会有这么大的不同吗?
【问题讨论】:
当您在 JComponent 的paintComponent 方法(例如 JPanel 的)中绘制时,您使用 Swing,默认情况下在绘制时使用双缓冲。直接在 JFrame 的 paint 方法中绘图将只允许 AWT 类型的绘图,因为 JFrame 直接继承自 Frame(一个重量级容器),并且由于 AWT 图形默认不使用双缓冲,这将导致动画不连贯。
【讨论】: