是否可以仅使用Swing组件(没有Canvas或任何其他AWT组件)使用双缓冲执行活动渲染?这意味着不应该依赖EDT来处理任何渲染方面。
编辑:我写的提示这个问题的程序不是全屏的。答案 0 :(得分:1)
Java支持Full-Screen Exclusive Mode API中的活动呈现:
Passive vs. Active Rendering
但是在AWT上也有办法明确控制渲染(无需全屏显示):
java.awt.Canvas
setIgnoreRepaint(true);
strategy.show()
Toolkit.getDefaultToolkit().sync();
这是一篇关于该主题的好文章,包括一个例子:
Java Game (Actually the most efficient way to repaint)
答案 1 :(得分:1)
如果您使用BufferStrategy
提供的JFrame.getBufferStrategy()
,则只能使用Swing执行活动呈现。从那时起,您可以像使用BufferStrategy
中的Canvas
一样行事。