如何在Java2D中进行双缓冲?

Sco*_*r84 5 java doublebuffered java-2d

我在屏幕上使用Java2D绘制了一堆原语,我得到了很多撕裂/闪烁.

如何启用/使用双缓冲,以便将其从屏幕上拉出然后显示整个事物?

小智 1

  1. 您创建一个 BufferedImage 实例。为了获得最佳性能,您需要确保缓冲图像使用与要渲染到的屏幕相同的模型。

检查如何使用传递给任何组件的paint方法的Graphics2D创建BufferedImage(有很多方法可以创建缓冲图像,这链接了一些......)

[http://www.exampledepot.com/egs/java.awt.image/CreateBuf.html][1]

  1. 您获取与缓冲图像关联的 Graphics [ getGraphics() ],如果需要,将其转换为 Graphics2D,并通过调用该图形对象上的命令将图元渲染到缓冲图像(也可以将该图形对象传递给组件以绘制自己)在您的缓冲图像上)。

  2. 您可以通过重写组件的paint方法并在传递给组件的Graphics2D参数上调用drawImage()的变体,将缓冲图像绘制到组件中。