Module  java.desktop
软件包  java.awt

Class Canvas

  • All Implemented Interfaces:
    ImageObserverMenuContainerSerializableAccessible


    public class Canvas
    extends Component
    implements Accessible
    Canvas组件表示应用程序可以在其上绘制的屏幕的空白矩形区域,或者应用程序可以从该屏幕捕获来自用户的输入事件。

    应用程序必须对Canvas类进行子类化,以获得有用的功能,例如创建自定义组件。 必须覆盖paint方法才能在画布上执行自定义图形。

    从以下版本开始:
    1.0
    另请参见:
    Serialized Form
    • 构造方法详细信息

      • Canvas

        public Canvas​()
        构造一个新的画布。
    • 方法详细信息

      • addNotify

        public void addNotify​()
        创建画布的对等体。 此对等体允许您更改画布的用户界面,而无需更改其功能。
        重写:
        addNotifyComponent
        另请参见:
        Component.getToolkit()
      • paint

        public void paint​(Graphics g)
        画这幅画。

        Canvas子类的大多数应用程序Canvas应该覆盖此方法,以便执行一些有用的操作(通常是自定义画布)。 默认操作只是清除画布。 覆盖此方法的应用程序不需要调用super.paint(g)。

        重写:
        paintComponent
        参数
        g - 指定的图形上下文
        另请参见:
        update(Graphics)Component.paint(Graphics)
      • update

        public void update​(Graphics g)
        更新此画布。

        此方法是响应于对repaint的调用而repaint 画布首先通过填充背景颜色来清除,然后通过调用此画布的paint方法完全重绘。 注意:覆盖此方法的应用程序应该调用super.update(g)或将上述功能合并到自己的代码中。

        重写:
        updateComponent
        参数
        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