Java JFrame和JPanel与Repaint()的差异

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

我设法通过将代码从主JFrame类移动到JPanel然后添加到JFrame类中,从我的“弹性球”中解决了闪烁,有人能告诉我为什么会产生这样的差异吗?

解决方法:

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

上一篇:在java中,JFrame是重量级组件还是轻量级组件?


下一篇:复制到全局剪贴板不适用于Ubuntu中的Java