双缓冲与awt

时间:2010-05-16 20:27:53

标签: java swing awt doublebuffered

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

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

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

对多步问题感到抱歉。谢谢你的时间:))

1 个答案:

答案 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);
    }
  }