缓冲策略与JFrame中的DIY双缓冲

res*_*pvl 0 java doublebuffered jframe

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

编辑:我不认为我的问题非常清楚.我想知道DIY方法和BufferStrategy的优点/缺点,以及何时,如果有的话,我应该使用其中一个.

tra*_*god 7

BufferStrategy通过小心使用默认值我总是有很好的结果

  • 始终在EDT上构建GUI组件
  • 除了EDT之外,切勿从线上画画

这个优秀的例子 必须加倍缓冲,因为它不断地在初始线程而不是EDT上绘制.相比之下,这个相当繁忙的例子仅仅依赖repaint()于响应Swing 而调用Timer.除了复合材料,我很少需要屏幕外缓冲区.最后,本教程文章提供了更多指南.