AWT Graphics类

1 什么是Java AWT Graphics

Graphics 类是所有图形上下文的抽象超类,它允许应用程序绘制到可以在各种设备上实现的组件上,或者也绘制到屏幕外的图像上。

Graphics 对象封装了 Java 支持的基本渲染操作所需的所有状态信息。状态信息包括以下属性。

  • 要在其上绘制的 Component 对象。

  • 用于渲染和裁剪坐标的平移原点。

  • 当前剪辑。

  • 当前颜色。

  • 当前字体。

  • 当前逻辑像素操作函数。

  • 当前 XOR 交替颜色

2 Java AWT Graphics的语法

public abstract class Graphics
   extends Object

3 Java AWT Graphics的构造方法

构造方法 描述
Graphics() 构造一个新的 Graphics 对象。

4 Java AWT Graphics的方法

方法 描述
abstract void clearRect(int x, int y, int width, int height) 通过用当前绘图表面的背景色填充指定的矩形来清除它。
abstract void clipRect(int x, int y, int width, int height) 将当前剪辑与指定的矩形相交。
abstract void copyArea(int x, int y, int width, int height, int dx, int dy) 按 dx 和 dy 指定的距离复制组件的一个区域。
abstract Graphics create() 创建一个新的 Graphics 对象,它是此 Graphics 对象的副本。
Graphics create(int x, int y, int width, int height) 基于此 Graphics 对象创建一个新的 Graphics 对象,但具有新的平移和剪辑区域。
abstract void dispose() 处理此图形上下文并释放它正在使用的任何系统资源。
void draw3DRect(int x, int y, int width, int height, boolean raised) 绘制指定矩形的 3-D 突出显示轮廓。
abstract void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle) 绘制覆盖指定矩形的圆弧或椭圆弧的轮廓。
void drawBytes(byte[] data, int offset, int length, int x, int y) 使用此图形上下文的当前字体和颜色绘制由指定字节数组给出的文本。
void drawChars(char[] data, int offset, int length, int x, int y) 使用此图形上下文的当前字体和颜色绘制由指定字符数组给出的文本。
abstract boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer) 绘制当前可用的尽可能多的指定图像。
abstract boolean drawImage(Image img, int x, int y, ImageObserver observer) 绘制当前可用的尽可能多的指定图像。
abstract boolean drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer) 绘制与已缩放以适合指定矩形内的指定图像一样多的指定图像。
abstract boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer) 绘制与已缩放以适合指定矩形内的指定图像一样多的指定图像。
abstract boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, Color bgcolor, ImageObserver observer) 绘制当前可用的指定图像的指定区域,动态缩放以适应目标可绘制表面的指定区域。
abstract boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer) 绘制当前可用的指定图像的指定区域,动态缩放以适应目标可绘制表面的指定区域。
abstract void drawLine(int x1, int y1, int x2, int y2) 使用当前颜色在此图形上下文的坐标系中的点 (x1, y1) 和 (x2, y2) 之间绘制一条线。
abstract void drawOval(int x, int y, int width, int height) 绘制椭圆的轮廓。
abstract void drawPolygon(int[] xPoints, int[] yPoints, int nPoints) 绘制由 x 和 y 坐标数组定义的闭合多边形。
void drawPolygon(Polygon p) 绘制由指定的 Polygon 对象定义的多边形的轮廓。
abstract void drawPolyline(int[] xPoints, int[] yPoints, int nPoints) 绘制由 x 和 y 坐标数组定义的一系列连接线。
void drawRect(int x, int y, int width, int height) 绘制指定矩形的轮廓。
abstract void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) 使用此图形上下文的当前颜色绘制一个带轮廓的圆角矩形。
abstract void drawString(AttributedCharacterIterator iterator, int x, int y) 根据 TextAttribute 类的规范应用其属性呈现指定迭代器的文本。
abstract void drawString(String str, int x, int y) 使用此图形上下文的当前字体和颜色绘制由指定字符串给出的文本。
void fill3DRect(int x, int y, int width, int height, boolean raised) 绘制一个用当前颜色填充的 3D 高亮矩形。
abstract void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle) 填充覆盖指定矩形的圆弧或椭圆弧。
abstract void fillOval(int x, int y, int width, int height) 用当前颜色填充以指定矩形为边界的椭圆。
abstract void fillPolygon(int[] xPoints, int[] yPoints, int nPoints) 填充由 x 和 y 坐标数组定义的闭合多边形。
void fillPolygon(Polygon p) 用图形上下文的当前颜色填充由指定的 Polygon 对象定义的多边形。
abstract void fillRect(int x, int y, int width, int height) 填充指定的矩形。
abstract void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) 用当前颜色填充指定的圆角矩形。
void finalize() 一旦不再引用此图形上下文,将对其进行处理。
abstract Shape getClip() 获取当前剪切区域。
abstract Rectangle getClipBounds() 返回当前剪切区域的边界矩形。
Rectangle getClipBounds(Rectangle r) 返回当前剪切区域的边界矩形。
Rectangle getClipRect() 已弃用。从 JDK 1.1 版开始,由 getClipBounds() 取代。
abstract Color getColor() 获取此图形上下文的当前颜色。
abstract Font getFont() 获取当前字体。
FontMetrics getFontMetrics() 获取当前字体的字体规格。
abstract FontMetrics getFontMetrics(Font f) 获取指定字体的字体规格。
boolean hitClip(int x, int y, int width, int height) 如果指定的矩形区域可能与当前剪切区域相交,则返回 true。
abstract void setClip(int x, int y, int width, int height) 将当前剪辑设置为给定坐标指定的矩形。
abstract void setClip(Shape clip) 将当前剪辑区域设置为任意剪辑形状。
abstract void setColor(Color c) 将此图形上下文的当前颜色设置为指定的颜色。
abstract void setFont(Font font) 将此图形上下文的字体设置为指定的字体。
abstract void setPaintMode() 设置此图形上下文的绘制模式以使用此图形上下文的当前颜色覆盖目标。
abstract void setXORMode(Color c1) 设置此图形上下文的绘制模式以在此图形上下文的当前颜色和新指定的颜色之间交替。
String toString() 返回表示此 Graphics 对象值的 String 对象。
abstract void translate(int x, int y) 将图形上下文的原点平移到当前坐标系中的点 (x, y)。

5 Java AWT Graphics的例子

让我们看一个简单的Java AWT Graphics类示例。

package com.yiidian;

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class AWTGraphicsDemo extends Frame {
       
   public AWTGraphicsDemo(){
      super("一点教程网:Java AWT Examples");
      prepareGUI();
   }

   public static void main(String[] args){
      AWTGraphicsDemo  awtGraphicsDemo = new AWTGraphicsDemo();  
      awtGraphicsDemo.setVisible(true);
   }

   private void prepareGUI(){
      setSize(400,400);
      addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      }); 
   }    

   @Override
   public void paint(Graphics g) {
      g.setColor(Color.GRAY);
      Font font = new Font("Serif", Font.PLAIN, 24);
      g.setFont(font);
      g.drawString("Welcome to yiidian.com", 50, 150);
   }
}

输出结果为:

热门文章

优秀文章