- java.lang.Object
-
- java.awt.image.BufferStrategy
-
- java.awt.Component.FlipBufferStrategy
-
- Enclosing class:
- Component
protected class Component.FlipBufferStrategy extends BufferStrategy
用于在组件上翻转缓冲区的内部类。 该组件必须是Canvas
或Window
或Applet
。- 从以下版本开始:
- 1.4
- 另请参见:
-
Canvas
,Window
,Applet
,BufferStrategy
-
-
字段汇总
字段 变量和类型 字段 描述 protected BufferCapabilities
caps
缓冲功能protected Image
drawBuffer
绘图缓冲区protected VolatileImage
drawVBuffer
绘图缓冲区为易失性图像protected int
numBuffers
缓冲区的数量protected boolean
validatedContents
最近是否已从丢失状态恢复绘图缓冲区。
-
构造方法摘要
构造方法 变量 构造器 描述 protected
FlipBufferStrategy(int numBuffers, BufferCapabilities caps)
为此组件创建新的翻转缓冲区策略。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 boolean
contentsLost()
返回自上次调用getDrawGraphics
以来绘图缓冲区是否丢失。boolean
contentsRestored()
返回绘图缓冲区最近是否从丢失状态恢复并重新初始化为默认背景颜色(白色)。protected void
createBuffers(int numBuffers, BufferCapabilities caps)
使用给定的功能创建一个或多个复杂的翻转缓冲区。protected void
destroyBuffers()
销毁通过此对象创建的缓冲区void
dispose()
释放此BufferStrategy
当前使用的系统资源,并将其从关联的Component中删除。protected void
flip(BufferCapabilities.FlipContents flipAction)
翻转通过复制或移动视频指针将后缓冲区的内容移动到前缓冲区。protected Image
getBackBuffer()
BufferCapabilities
getCapabilities()
返回BufferCapabilities
的BufferStrategy
。Graphics
getDrawGraphics()
为绘图缓冲区创建图形上下文。protected void
revalidate()
如果丢失,则恢复绘图缓冲区void
show()
通过blitting或flipping使下一个可用缓冲区可见。
-
-
-
字段详细信息
-
numBuffers
protected int numBuffers
缓冲区的数量
-
caps
protected BufferCapabilities caps
缓冲功能
-
drawBuffer
protected Image drawBuffer
绘图缓冲区
-
drawVBuffer
protected VolatileImage drawVBuffer
绘图缓冲区为易失性图像
-
validatedContents
protected boolean validatedContents
最近是否已从丢失状态恢复绘图缓冲区。
-
-
构造方法详细信息
-
FlipBufferStrategy
protected FlipBufferStrategy(int numBuffers, BufferCapabilities caps) throws AWTException
为此组件创建新的翻转缓冲区策略。 该组件必须是Canvas
或Window
或Applet
。- 参数
-
numBuffers
- 缓冲区数 -
caps
- 缓冲区的功能 - 异常
-
AWTException
- 如果无法支持或满足提供的功能 -
ClassCastException
- 如果组件不是画布或窗口。 -
IllegalStateException
- 如果组件没有对等方 -
IllegalArgumentException
- 如果numBuffers
小于2,或者如果BufferCapabilities.isPageFlipping
不是true
。 - 另请参见:
-
Canvas
,Window
,Applet
,createBuffers(int, BufferCapabilities)
-
-
方法详细信息
-
createBuffers
protected void createBuffers(int numBuffers, BufferCapabilities caps) throws AWTException
使用给定的功能创建一个或多个复杂的翻转缓冲区。- 参数
-
numBuffers
- 要创建的缓冲区数量; 必须大于一 -
caps
- 缓冲区的功能。BufferCapabilities.isPageFlipping
必须是true
。 - 异常
-
AWTException
- 如果无法支持或满足提供的功能 -
IllegalStateException
- 如果组件没有对等方 -
IllegalArgumentException
- 如果numBuffers小于2,或者BufferCapabilities.isPageFlipping
不是true
。 - 另请参见:
-
BufferCapabilities.isPageFlipping()
-
getBackBuffer
protected Image getBackBuffer()
- 结果
- 直接访问后台缓冲区,作为图像。
- 异常
-
IllegalStateException
- 如果尚未创建缓冲区
-
flip
protected void flip(BufferCapabilities.FlipContents flipAction)
翻转通过复制或移动视频指针将后缓冲区的内容移动到前缓冲区。- 参数
-
flipAction
- 描述后台缓冲区内容的翻转操作的整数值。 这应该是BufferCapabilities.FlipContents
属性的值之一。 - 异常
-
IllegalStateException
- 如果尚未创建缓冲区 - 另请参见:
-
BufferCapabilities.getFlipContents()
-
destroyBuffers
protected void destroyBuffers()
销毁通过此对象创建的缓冲区
-
getCapabilities
public BufferCapabilities getCapabilities()
返回BufferCapabilities
的BufferStrategy
。- Specified by:
-
getCapabilities
,类BufferStrategy
- 结果
- 这种策略的缓冲功能
-
getDrawGraphics
public Graphics getDrawGraphics()
复制自类的说明:BufferStrategy
为绘图缓冲区创建图形上下文。 出于性能原因,此方法可能无法同步; 应该在应用程序级别处理多个线程使用此方法。 处理获得的图形对象必须由应用程序处理。- Specified by:
-
getDrawGraphics
在类BufferStrategy
- 结果
- 绘图缓冲区上的图形。 出于性能原因,此方法可能无法同步; 应该在应用程序级别处理多个线程使用此方法。 必须由应用程序处理图形对象的处理。
-
revalidate
protected void revalidate()
如果丢失,则恢复绘图缓冲区
-
contentsLost
public boolean contentsLost()
返回自上次调用getDrawGraphics
以来绘图缓冲区是否丢失。 由于缓冲区策略中的缓冲区通常是类型VolatileImage
,因此它们可能会丢失。 有关丢失缓冲区的讨论,请参见VolatileImage
。- Specified by:
-
contentsLost
类BufferStrategy
- 结果
-
自上次调用
getDrawGraphics
是否丢失了绘图缓冲区 - 另请参见:
-
VolatileImage
-
contentsRestored
public boolean contentsRestored()
复制自类:BufferStrategy
描述返回绘图缓冲区最近是否从丢失状态恢复并重新初始化为默认背景颜色(白色)。 由于缓冲区策略中的缓冲区通常是类型VolatileImage
,因此它们可能会丢失。 如果表面最近从最后一次调用getDrawGraphics
后从丢失状态恢复,则可能需要重新绘制。 有关丢失缓冲区的讨论,请参阅VolatileImage
。- Specified by:
-
contentsRestored
在类BufferStrategy
- 结果
- 最近是否从丢失状态恢复了绘图缓冲区并重新初始化为默认背景颜色(白色)
- 另请参见:
-
VolatileImage
-
show
public void show()
通过blitting或flipping使下一个可用缓冲区可见。- Specified by:
-
show
,类BufferStrategy
-
dispose
public void dispose()
释放此BufferStrategy
当前使用的系统资源,并将其从关联的Component中删除。 调用此方法后,getBufferStrategy
将返回null。 在BufferStrategy
之后尝试使用BufferStrategy
将导致未定义的行为。- 重写:
-
dispose
,类BufferStrategy
- 从以下版本开始:
- 1.6
- 另请参见:
-
Window.createBufferStrategy(int)
,Canvas.createBufferStrategy(int)
,Window.getBufferStrategy()
,Canvas.getBufferStrategy()
-
-