Java JFrame和JPanel与Repaint()的差异

Dan*_*iel 3 java swing awt paint

我一直在玩一些简单的绘画,Graphics2D并在这里得到了社区的一些非常好的帮助.

我设法通过将代码从主JFrame类转移到JPanel我将其添加到JFrame课程中的那个"弹性球"来解决闪烁问题,有人能告诉我为什么会产生这样的差异吗?

Hov*_*els 5

当您在JComponent的paintComponent方法(例如JPanel)中绘制时,使用Swing,默认情况下绘制时使用双缓冲.直接在JFrame的绘制方法中绘制将只允许AWT类型绘制,因为JFrame直接继承自Frame,一个重量级容器,并且由于AWT图形默认情况下不使用双缓冲,这将导致不连贯的动画.