- java.lang.Object
-
- java.awt.Component
-
- java.awt.Canvas
-
- All Implemented Interfaces:
-
ImageObserver
,MenuContainer
,Serializable
,Accessible
public class Canvas extends Component implements Accessible
Canvas
组件表示应用程序可以在其上绘制的屏幕的空白矩形区域,或者应用程序可以从该屏幕捕获来自用户的输入事件。应用程序必须对
Canvas
类进行子类化,以获得有用的功能,例如创建自定义组件。 必须覆盖paint
方法才能在画布上执行自定义图形。- 从以下版本开始:
- 1.0
- 另请参见:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 protected class
Canvas.AccessibleAWTCanvas
该类实现Canvas
类的可访问性支持。-
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
-
Field Summary
-
Fields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
-
构造方法摘要
构造方法 Constructor 描述 Canvas()
构造一个新的画布。Canvas(GraphicsConfiguration config)
给一个GraphicsConfiguration对象构造一个新的Canvas。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 void
addNotify()
创建画布的对等体。void
createBufferStrategy(int numBuffers)
为此组件创建一个新的多缓冲策略。void
createBufferStrategy(int numBuffers, BufferCapabilities caps)
在此组件上创建一个新策略,以实现所需的缓冲功能。AccessibleContext
getAccessibleContext()
获取与此Canvas关联的AccessibleContext。BufferStrategy
getBufferStrategy()
返回此组件使用的BufferStrategy
。void
paint(Graphics g)
画这幅画。void
update(Graphics g)
更新此画布。-
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, deliverEvent, disable, disableEvents, dispatchEvent, doLayout, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAlignmentX, getAlignmentY, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentAt, getComponentAt, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeys, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMaximumSize, getMinimumSize, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, invalidate, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusCycleRoot, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, layout, list, list, list, list, list, locate, location, lostFocus, minimumSize, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, paramString, postEvent, preferredSize, prepareImage, prepareImage, print, printAll, processComponentEvent, processEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, revalidate, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeys, setFocusTraversalKeysEnabled, setFont, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setMixingCutoutShape, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle, validate
-
-
-
-
构造方法详细信息
-
Canvas
public Canvas()
构造一个新的画布。
-
Canvas
public Canvas(GraphicsConfiguration config)
给一个GraphicsConfiguration对象构造一个新的Canvas。 如果传递null,则将使用默认的GraphicsConfiguration。- 参数
-
config
- 对GraphicsConfiguration对象的引用或null - 另请参见:
-
GraphicsConfiguration
,Component.getGraphicsConfiguration()
-
-
方法详细信息
-
addNotify
public void addNotify()
创建画布的对等体。 此对等体允许您更改画布的用户界面,而无需更改其功能。- 重写:
-
addNotify
在Component
- 另请参见:
-
Component.getToolkit()
-
paint
public void paint(Graphics g)
画这幅画。Canvas
子类的大多数应用程序Canvas
应该覆盖此方法,以便执行一些有用的操作(通常是自定义画布)。 默认操作只是清除画布。 覆盖此方法的应用程序不需要调用super.paint(g)。- 重写:
-
paint
在Component
- 参数
-
g
- 指定的图形上下文 - 另请参见:
-
update(Graphics)
,Component.paint(Graphics)
-
update
public void update(Graphics g)
更新此画布。此方法是响应于对
repaint
的调用而repaint
。 画布首先通过填充背景颜色来清除,然后通过调用此画布的paint
方法完全重绘。 注意:覆盖此方法的应用程序应该调用super.update(g)或将上述功能合并到自己的代码中。- 重写:
-
update
在Component
- 参数
-
g
- 指定的图形上下文 - 另请参见:
-
paint(Graphics)
,Component.update(Graphics)
-
createBufferStrategy
public void createBufferStrategy(int numBuffers)
为此组件创建一个新的多缓冲策略。 多缓冲对于渲染性能很有用。 此方法尝试使用提供的缓冲区数量创建可用的最佳策略。 它将始终使用该数量的缓冲区创建一个BufferStrategy
。 首先尝试翻页策略,然后尝试使用加速缓冲区的策略策略。 最后,使用非加速的制动策略。每次调用此方法时,将丢弃此组件的现有缓冲区策略。
- 参数
-
numBuffers
- 要创建的缓冲区数,包括前端缓冲区 - 异常
-
IllegalArgumentException
- 如果numBuffers小于1。 -
IllegalStateException
- 如果组件不可显示 - 从以下版本开始:
- 1.4
- 另请参见:
-
Component.isDisplayable()
,getBufferStrategy()
-
createBufferStrategy
public void createBufferStrategy(int numBuffers, BufferCapabilities caps) throws AWTException
在此组件上创建一个新策略,以实现所需的缓冲功能。 这是有用的,例如,如果只需要加速内存或页面翻转(由缓冲区功能指定)。每次调用此方法时,将丢弃此组件的现有缓冲区策略。
- 参数
-
numBuffers
- 要创建的缓冲区数 -
caps
- 创建缓冲策略所需的功能; 不能是null
- 异常
-
AWTException
- 如果提供的功能不能被支持或满足; 这可能发生,例如,如果当前没有足够的加速内存可用,或者如果指定了页面翻转,但是不可能。 -
IllegalArgumentException
- 如果numBuffers小于1,或者如果cap是null
- 从以下版本开始:
- 1.4
- 另请参见:
-
getBufferStrategy()
-
getBufferStrategy
public BufferStrategy getBufferStrategy()
返回此组件使用的BufferStrategy
。 如果尚未创建或已经处理了BufferStrategy
则此方法将返回null。- 结果
- 该组件使用的缓冲策略
- 从以下版本开始:
- 1.4
- 另请参见:
-
createBufferStrategy(int)
-
getAccessibleContext
public AccessibleContext getAccessibleContext()
获取与此Canvas关联的AccessibleContext。 对于画布,AccessibleContext采用AccessibleAWTCanvas的形式。 如有必要,将创建一个新的AccessibleAWTCanvas实例。- Specified by:
-
getAccessibleContext
在接口Accessible
- 重写:
-
getAccessibleContext
在类Component
- 结果
- 一个AccessibleAWTCanvas作为此Canvas的AccessibleContext
- 从以下版本开始:
- 1.3
-
-