Module java.desktop
Package java.awt

Class Canvas

所有已实现的接口:
ImageObserver, MenuContainer, Serializable, Accessible

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

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

自从:
1.0
参见:
  • Constructor Details

  • Method Details

    • addNotify

      public void addNotify()
      创建画布的对等体。此对等体允许您更改画布的用户界面而不更改其功能。
      覆盖:
      addNotify 在类 Component
      参见:
    • paint

      public void paint(Graphics g)
      绘制此画布。

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

      覆盖:
      paint 在类 Component
      参数:
      g - 指定的Graphics上下文
      参见:
    • update

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

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

      覆盖:
      update 在类 Component
      参数:
      g - 指定的Graphics上下文
      参见:
    • createBufferStrategy

      public void createBufferStrategy(int numBuffers)
      在此组件上创建一个新的多缓冲策略。多缓冲对于渲染性能很有用。此方法尝试使用提供的缓冲区数量创建最佳策略。它将始终创建具有该数量缓冲区的BufferStrategy。首先尝试页面翻转策略,然后尝试使用加速缓冲区的位块传输策略。最后,使用非加速位块传输策略。

      每次调用此方法时,此组件的现有缓冲策略将被丢弃。

      参数:
      numBuffers - 要创建的缓冲区数量,包括前缓冲区
      抛出:
      IllegalArgumentException - 如果numBuffers小于1。
      IllegalStateException - 如果组件不可显示
      自从:
      1.4
      参见:
    • createBufferStrategy

      public void createBufferStrategy(int numBuffers, BufferCapabilities caps) throws AWTException
      使用所需的缓冲区功能在此组件上创建一个新的多缓冲策略。例如,如果只需要加速内存或页面翻转(由缓冲区功能指定)。

      每次调用此方法时,此组件的现有缓冲策略将被丢弃。

      参数:
      numBuffers - 要创建的缓冲区数量
      caps - 创建缓冲策略所需的功能;不能为null
      抛出:
      AWTException - 如果无法支持或满足提供的功能;例如,如果当前可用的加速内存不足,或者指定了页面翻转但不可能。
      IllegalArgumentException - 如果numBuffers小于1,或者caps为null
      自从:
      1.4
      参见:
    • getBufferStrategy

      public BufferStrategy getBufferStrategy()
      返回此组件使用的BufferStrategy。如果尚未创建BufferStrategy或已被处理,则此方法将返回null。
      返回:
      此组件使用的缓冲策略
      自从:
      1.4
      参见:
    • getAccessibleContext

      public AccessibleContext getAccessibleContext()
      获取与此Canvas关联的AccessibleContext。对于画布,AccessibleContext采用AccessibleAWTCanvas的形式。如果需要,将创建一个新的AccessibleAWTCanvas实例。
      指定者:
      getAccessibleContext 在接口 Accessible
      覆盖:
      getAccessibleContext 在类 Component
      返回:
      作为此Canvas的AccessibleContext的AccessibleAWTCanvas
      自从:
      1.3