bufferedgraphics.java

来自「java learn PPT java learn PPT java learn」· Java 代码 · 共 69 行

JAVA
69
字号
package magic.graphics;

import java.applet.*;
import java.awt.*;

public class BufferedGraphics
    extends Object
{
  // 用来绘制屏外图像的Component
  protected Component parent;

  // 屏外绘制图像
  protected Image buffer;

  // 创建一个新的BufferedGraphics对象
  protected BufferedGraphics()
  {
    parent = null;
    buffer = null;
  }

  // 用传入的parent Component创建一个新的BufferedGraphics对象
  public BufferedGraphics(Component c)
  {
    parent = c;

    createBuffer();
  }

  public final Image getBuffer()
  {
    return buffer;
  }

  // 在验证buffer后返回buffer的 Graphics容器
  public Graphics getValidGraphics()
  {
    if (!isValid()) {
      createBuffer();
    }
    return buffer.getGraphics();
  }

  // 按照parent的宽和高创建一个屏外绘制图像
  protected void createBuffer()
  {
    Dimension size = parent.getSize();
    buffer = parent.createImage(size.width, size.height);
  }

  // 校验屏外图像的几个关键之处,主要是校验空引用和parent的宽和高
  protected boolean isValid()
  {
    if (parent == null) {
      return false;
    }

    Dimension s = parent.getSize();

    if (buffer == null ||
        buffer.getWidth(null) != s.width ||
        buffer.getHeight(null) != s.height) {
      return false;
    }

    return true;
  }

} // BufferedGraphics

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?