代码之家  ›  专栏  ›  技术社区  ›  exodrifter

awt双缓冲

  •  7
  • exodrifter  · 技术社区  · 16 年前

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

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

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

    1 回复  |  直到 16 年前
        1
  •  6
  •   Chris Dolan    16 年前

    这在网上很容易回答。只要搜索“双缓冲awt”,你会发现很多例子。你甚至可以看到 an old example 我在1998年用java1.0awt编写了自己的程序。你只需要实例化你自己的图形对象并绘制一个图像,然后把这个图像放到画布上。下面是我的示例中的关键代码:

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