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

JFrame中的BufferStrategy与DIY双缓冲

陈鸿才
2023-03-14
问题内容

到目前为止,我已经通过创建和图像完成了双重缓冲,使用其关联的Graphics对象向该图像绘制了我想要的图像,然后使用paint方法的Graphics对象将该图像绘制到了屏幕上。最近,我了解了BufferStrategy类及其用法。我想知道这两种方法的优缺点。

编辑:我认为我的问题不太清楚。我想知道DIY方法和BufferStrategy的优缺点,以及何时应该使用其中一种。


问题答案:

使用默认值时BufferStrategy,我总是会取得很好的效果,

  • 始终在EDT上构造GUI组件
  • 除EDT外,切勿从螺纹中抽出

这个出色的示例
必须
加倍缓冲区,因为它会在初始线程而不是EDT上连续绘制。相反,这个相当繁忙的示例仅依赖repaint()于响应Swing
而被调用Timer。除了复合外,我很少需要屏幕外缓冲区。最后,本教程文章提供了更多指南。




 类似资料:
  • 问题内容: 在从事2D游戏时,我读了很多有关Double Buffering的文章。我遇到了许多不同的实施策略,但不确定如何将Double Buffering放入我创建游戏窗口的方式中。例如,我遇到的一篇文章(http://content.gpwiki.org/index.php/Java:Tutorials:Double_Buffering)建议使用一种单独的绘制方法;但是,我怀疑如果您正在绘制

  • 问题内容: 我正在学习Java gui。我学会了创建窗口的方法是继承或扩展类,并且很好地使用它,因为它包含窗口的所有属性。现在,如果要在此窗口中添加一些内容,则需要使用方法。但是今天我碰到了一个窗口,我们可以通过添加东西。 两种方法有什么区别?它们之间有某种联系吗? 问题答案: 您不应不必要地扩展该类(仅当您向该类添加其他功能时) JFrame : 扩展和。 它是一个顶层容器,用于表示窗口的最低要

  • 我正在学习Java GUI。我学习创建窗口的方法是继承或扩展类,使用它是很好的,因为包含窗口的所有属性。现在如果我想在这个窗口中添加一些东西,我需要使用方法。但是今天我遇到了,它也创建了一个windows,我们可以通过添加内容。 这两种方法有什么区别?他们有什么关系吗?

  • PHP 生成二维码海报,支持多模板。 增加模板: 1、qrcode.*** 开头的 文件夹,比如:qrcode.demo3 2、在第一步创建的文件夹中配置文件config.php,以上面的例子为:qrcode.demo3/config.php <?phpreturn array( 'level' => "L", //二维码校正级别,可选:L、M、Q、H 'matrix' => 6, //矩阵的大小

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

  • 问题内容: awt是否可以进行双缓冲(在Java中)?目前,我知道awt不应该与swing一起使用,所以我不能使用BufferStrategy之类的东西(我已经用awt编写了一些我不想在swing中重写的代码)。 如果使用awt可以进行双缓冲,我是否必须手动写入缓冲区?与swing不同,awt似乎没有相同的内置双缓冲功能。 如果必须手动编写代码,是否有一个不错的教程可以看?还是对于新手程序员来说,