双缓冲与awt

exo*_*ter 7 java swing doublebuffered awt

使用awt可以实现双缓冲(在java中)吗?目前,我知道swing不应该和awt一起使用,所以我不能使用BufferStrategy等等(我已经有一些用awt编写的代码,我不想在swing中重写).

如果使用awt可以实现双缓冲,我是否必须手动编写缓冲区?与swing不同,awt似乎没有相同的内置双缓冲功能.

如果我必须手动编写代码,是否有一个很好的教程可供查看?或者新手程序员使用swing更容易/更明智?

对于多步骤问题,我们深表歉意.谢谢你的时间 :)

Chr*_*lan 6

这很容易在网上得到解答.只需搜索"双缓冲awt",你会发现很多例子.你甚至可以看到我在1998年用Java 1.0 AWT编写的一个旧例子.您只需要实例化自己的Graphics对象并绘制到Image,然后将该图像blit到画布中.这是我的示例中的关键代码:

  public void paint(Graphics g) {
    if (doubleBuffer) {
      paintSky(top.gBuf);
      g.drawImage(top.buf, 0, 0, this);
    } else {
      paintSky(g);
    }
  }
Run Code Online (Sandbox Code Playgroud)