当前位置: 首页 > 面试题库 >

带有awt的双缓冲

方韬
2023-03-14
问题内容

awt是否可以进行双缓冲(在Java中)?目前,我知道awt不应该与swing一起使用,所以我不能使用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);
    }
  }


 类似资料:
  • 我在JFrame中有一个AWT画布(我知道Swing和AWT不应该同时使用,但它在Windows上工作得很好,所以我不认为问题是由这个引起的),并使用画布中的BufferStrategy在屏幕上绘制。它在Windows上运行非常流畅,但当我试图在Ubuntu12.04上运行时,它变得慢得令人难以忍受。不仅是呈现,而且JFrame也是无响应的。当我注释掉双缓冲和渲染部分时,它又变得平滑了。我有一个A

  • 问题内容: 我有:本地,server1,server2。 我在server2上有Git存储库。但是我无法连接它。我可以使用SSH连接到server1,然后使用SSH连接到server2。 如何使用双SSH将提交推送到server2?可能吗? 问题答案: 一种解决方案是在网关主机(服务器1)上准备 SSH隧道 ,并在本地端使用Git(您可能需要使用它来配置端口)。 另一个是纯Git解决方案,可将 远

  • 问题内容: 我正在研究一个项目,并且在使用Java的双重缓冲方面已经读了尽可能多的内容。我想做的是向我的JFrame添加一个组件或面板或包含要绘制到其上的双缓冲表面的东西。如果可能,我想使用硬件加速,否则请使用常规软件渲染器。到目前为止,我的代码如下所示: 我创建了一个抽象的游戏类和一个调用Update和Draw的游戏循环。现在,如果您看到我的评论,那就是我主要关注的领域。有没有一种方法可以获取图

  • 请帮我学习在地图间导航。我有一张地图散列表 我想生成另一张 == 的地图 这是我的标准。如果0位置的绝对值大于1。-- 这是运行输出 请看留言。谢谢你们!https://i.stack.imgur.com/iaK7j.jpg

  • 这里,整个“service.getdata”语句应该是一个匹配项,但它在(转义的)双引号处中断。如果我用双引号括起参数值,它就可以工作了(就像它在前面的示例块中所做的那样)。但不幸的是,当参数值没有用双引号包装时,我需要它也能工作。 有人能帮我做最后一块吗?

  • 问题内容: 如您所知,角形和细枝形都有共同的控制结构-双花括号。如何更改Angular的默认值? 我知道我可以在Twig中做到这一点,但是在某些项目中,我只能做到JS。 问题答案: 您可以使用service 更改开始和结束插值标签。一个方便的地方是在模块初始化时。 https://docs.angularjs.org/api/ng/provider/$interpolateProvider