在Java中,是否可以使用AWT进行双缓冲?目前,我知道不应该将Swing与AWT一起使用,因此无法使用BufferStrategy等(我已经编写了一些AWT代码,不想在Swing中重写)。
如果AWT可以使用双缓冲,那么我需要手动编写缓冲区吗?与Swing不同,AWT似乎没有相同的内置双缓冲功能。
如果我确实需要手动编写代码,是否有好的教程可供参考?或者对于初学者程序员来说,使用Swing更容易/明智吗?
抱歉这是一个多步骤问题。感谢您的时间:)
在Java中,是否可以使用AWT进行双缓冲?目前,我知道不应该将Swing与AWT一起使用,因此无法使用BufferStrategy等(我已经编写了一些AWT代码,不想在Swing中重写)。
如果AWT可以使用双缓冲,那么我需要手动编写缓冲区吗?与Swing不同,AWT似乎没有相同的内置双缓冲功能。
如果我确实需要手动编写代码,是否有好的教程可供参考?或者对于初学者程序员来说,使用Swing更容易/明智吗?
抱歉这是一个多步骤问题。感谢您的时间:)
这个问题在网上很容易找到答案。只需搜索“double buffer awt”,就会找到许多示例。你甚至可以看到我在1998年使用Java 1.0 AWT编写的一个旧示例。你只需要实例化自己的Graphics对象并绘制到Image中,然后将该图像复制到画布中。以下是我的示例中的关键代码:
public void paint(Graphics g) {
if (doubleBuffer) {
paintSky(top.gBuf);
g.drawImage(top.buf, 0, 0, this);
} else {
paintSky(g);
}
}