5

我正在屏幕上使用 Java2D 绘制一堆原语,并且出现很多撕裂/闪烁。

如何启用/使用双缓冲,以便将其从屏幕上绘制出来然后显示整个内容?

4

3 回答 3

1

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

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

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

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

3)通过覆盖它的paint方法并在传递给组件的Graphics2D参数上调用drawImage()的变体,您将缓冲图像绘制到您的组件。

lmk 如果您需要示例代码...

于 2009-10-22T09:21:05.213 回答
1

查看有关双缓冲的本教程:http://gpwiki.org/index.php/Java:Tutorials: Double_Buffering

于 2009-10-19T06:20:53.530 回答
1

作为程序员视图有效使用缓冲的一些技巧

并且一些测试程序是可用的

于 2009-10-19T06:21:15.403 回答