java.lang.Object java.awt.Component java.awt.Canvas
public class Canvas
Canvas
组件表示屏幕上一个空白矩形区域,应用程序可以在该区域内绘图,或者可以从该区域捕获用户的输入事件。
应用程序必须为 Canvas
类创建子类,以获得有用的功能(如创建自定义组件)。必须重写 paint
方法,以便在 canvas 上执行自定义图形。
嵌套类摘要 | |
---|---|
protected class |
Canvas.AccessibleAWTCanvas 此类实现对 Canvas 类的可访问性支持。 |
从类 java.awt.Component 继承的嵌套类/接口 |
---|
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy |
字段摘要 |
---|
从类 java.awt.Component 继承的字段 |
---|
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
从接口 java.awt.image.ImageObserver 继承的字段 |
---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
构造方法摘要 | |
---|---|
Canvas() 构造一个新的 Canvas。 |
|
Canvas(GraphicsConfiguration config) 根据给定 GraphicsConfiguration 对象构造一个新的 Canvas。 |
方法摘要 | |
---|---|
void |
addNotify() 创建 canvas 的同位体。 |
void |
createBufferStrategy(int numBuffers) 创建一个新的策略,用于对此组件的多次缓冲。 |
void |
createBufferStrategy(int numBuffers, BufferCapabilities caps) 创建一个新的策略,使用所需的缓冲区能力对此组件进行多次缓冲。 |
AccessibleContext |
getAccessibleContext() 获取与此 Canvas 相关的 AccessibleContext。 |
BufferStrategy |
getBufferStrategy() 返回由此组件使用的 BufferStrategy 。 |
void |
paint(Graphics g) 绘制此 canvas。 |
void |
update(Graphics g) 更新此 canvas。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
构造方法详细信息 |
---|
public Canvas()
public Canvas(GraphicsConfiguration config)
config
- 对 GraphicsConfiguration 对象的引用。
GraphicsConfiguration
方法详细信息 |
---|
public void addNotify()
public void paint(Graphics g)
为 Canvas
创建子类的大多数应用程序应该重写此方法,以便执行某个有用的操作(通常是 canvas 的自定义绘制操作)。默认操作是清理 canvas。重写此方法的应用程序不需要调用 super.paint(g)。
g
- 指定的 Graphics 上下文
update(Graphics)
,
Component.paint(Graphics)
public void update(Graphics g)
调用此方法响应对 repaint
的调用。首先通过使用背景色填充 canvas 来清理它,然后通过调用此 canvas 的 paint
方法重绘它。注:重写此方法的应用程序应该调用 super.update(g),或者将上述功能合并到其自身的代码中。
g
- 指定的 Graphics 上下文
paint(Graphics)
,
Component.update(Graphics)
public void createBufferStrategy(int numBuffers)
BufferStrategy
。首先尝试页面翻转策略,然后尝试使用加速缓冲区的位图传输策略。最后,使用非加速的位图传输策略。
每次调用此方法时,都会丢弃此组件现有的缓冲区策略。
numBuffers
- 要创建的缓冲区数,包括前台缓冲区
IllegalArgumentException
- 如果 numBuffers 小于 1。
IllegalStateException
- 如果组件不是可显示的
Component.isDisplayable()
,
getBufferStrategy()
public void createBufferStrategy(int numBuffers, BufferCapabilities caps) throws AWTException
每次调用此方法时,都会丢弃此组件现有的缓冲区策略。
numBuffers
- 要创建的缓冲区数量
caps
- 创建缓冲区策略所要求的能力;不能为
null
AWTException
- 如果提供的能力不受支持或不能满足要求;例如,如果当前可用的加速内存不够,或者不能进行指定的页面翻转时,可能出现这种情况。
IllegalArgumentException
- 如果 numBuffers 小于 1,或者 caps 为
null
getBufferStrategy()
public BufferStrategy getBufferStrategy()
BufferStrategy
。如果尚未创建
BufferStrategy
或者已经用完了内存,则此方法返回 null。
createBufferStrategy(int)
public AccessibleContext getAccessibleContext()
Accessible
中的
getAccessibleContext
Component
中的
getAccessibleContext