7

是否可以使用 awt 进行双缓冲(在 java 中)?目前,我知道swing不应该与awt一起使用,所以我不能使用BufferStrategy之类的(我已经有一些用awt编写的代码,我不想在swing中重写)。

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

如果我必须手动编写代码,有没有好的教程可以看?或者对于新手程序员来说使用 swing 更容易/更可取?

对不起,多步骤问题。谢谢你的时间 :)

4

1 回答 1

6

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

  public void paint(Graphics g) {
    if (doubleBuffer) {
      paintSky(top.gBuf);
      g.drawImage(top.buf, 0, 0, this);
    } else {
      paintSky(g);
    }
  }
于 2010-05-16T20:36:31.330 回答