使用awt可以实现双缓冲(在java中)吗?目前,我知道swing不应该和awt一起使用,所以我不能使用BufferStrategy等等(我已经有一些用awt编写的代码,我不想在swing中重写)。
如果使用awt可以进行双缓冲,我是否必须手动编写缓冲区?与swing不同,awt似乎没有相同的内置双缓冲功能。
如果我必须手动编写代码,是否有一个很好的教程可供查看?或者,对于新手程序员而言,使用swing更容易/更明智吗?
对多步问题感到抱歉。谢谢你的时间:))
答案 0 :(得分:6)
这可以在网上轻松解答。只需搜索“双缓冲awt”,你会发现很多例子。你甚至可以看到我在1998年用Java 1.0 AWT写的an old example。您只需要实例化自己的Graphics对象并绘制到Image,然后将该图像blit到画布中。这是我的例子中的关键代码:
public void paint(Graphics g) {
if (doubleBuffer) {
paintSky(top.gBuf);
g.drawImage(top.buf, 0, 0, this);
} else {
paintSky(g);
}
}