首页 > 编程笔记 > Java笔记 阅读:6

Java Graphics类的用法(附带实例)

Graphics 类是所有图形上下文的抽象基类,它允许应用程序在组件以及闭屏图像上进行绘制。Graphics 类封装了 Java 支持的基本绘图操作所需的状态信息,主要包括颜色、字体、画笔、文本、图像等。

Graphics 类提供了绘图常用的方法,利用这些方法可以实现直线、矩形、多边形、椭圆、圆弧等形状和文本、图片的绘制操作。另外,在执行这些操作之前,还可以使用相应的方法设置绘图的颜色和字体等状态属性。

Graphics 类常用的图形绘制方法如下表所示:

表:Graphics 类常用的图形绘制方法
方法 说明 举例
drawArc(int x, int y, int width, int height, int startAngle, int arcAngle) 弧形 drawArc(100,100,100,50,270,200);
drawLine(int x1, int y1, int x2, int y2) 直线 drawLine(10,10,50,10);
drawLine(30,10,30,40);
drawOval(int x, int y, int width, int height) 椭圆 drawOval(10,10,50,30);
drawPolygon(int[] xPoints, int[] yPoints, int nPoints) 多边形 int[] xs={10,50,10,50};
int[] ys={10,50,50,10};
drawPolygon(xs, ys, 4);
drawPolyline(int[] xPoints, int[] yPoints, int nPoints) 多边线 int[] xs={10,50,10,50};
int[] ys={10,10,50,50};
drawPolyline(xs, ys, 4);
drawRect(int x, int y, int width, int height) 矩形 drawRect(10, 10, 100, 50);
drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) 圆角矩形 drawRoundRect(10,10,50,30,10,10);
fillArc(int x, int y, int width, int height, int startAngle, int arcAngle) 实心弧形 fillArc(100,100,50,30,270,200);
fillOval(int x, int y, int width, int height) 实心椭圆 fillOval(10,10,50,30);
fillPolygon(int[] xPoints, int[] yPoints, int nPoints) 实心多边形 int[] xs={10,50,10,50};
int[] ys={10,50,50,10};
fillPolygon(xs, ys, 4);
fillRect(int x, int y, int width, int height) 实心矩形 fillRect(10,10,50,30);
fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) 实心圆角矩形 g.fillRoundRect(10,10,50,30,10,10);

【实例】绘制由 5 个圆形组成的图案。在项目中创建 DrawCircle 类,使该类继承 JFrame 类成为窗体组件,在类中创建继承 JPanel 类的 DrawPanel 内部类,并重写 paint() 方法,绘制由 5 个圆形组成的图案。
import java.awt.*;
import javax.swing.*;

public class DrawCircle extends JFrame {
    private final int OVAL_WIDTH = 80;   // 圆形的宽
    private final int OVAL_HEIGHT = 80;  // 圆形的高

    public DrawCircle() {
        initialize();  // 调用初始化方法
    }

    private void initialize() {  // 初始化方法
        setSize(300, 200);  // 设置窗体大小
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  // 设置窗体关闭模式
        setContentPane(new DrawPanel());  // 设置窗体面板为绘图面板对象
        setTitle("绘图实例1");  // 设置窗体标题
    }

    class DrawPanel extends JPanel {  // 创建绘图面板
        public void paint(Graphics g) {  // 重写绘制方法
            g.drawOval(10, 10, OVAL_WIDTH, OVAL_HEIGHT);     // 绘制第1个圆形
            g.drawOval(80, 10, OVAL_WIDTH, OVAL_HEIGHT);     // 绘制第2个圆形
            g.drawOval(150, 10, OVAL_WIDTH, OVAL_HEIGHT);    // 绘制第3个圆形
            g.drawOval(50, 70, OVAL_WIDTH, OVAL_HEIGHT);     // 绘制第4个圆形
            g.drawOval(120, 70, OVAL_WIDTH, OVAL_HEIGHT);    // 绘制第5个圆形
        }
    }

    public static void main(String[] args) {
        new DrawCircle().setVisible(true);
    }
}
运行结果如下图所示:


图 1 绘制由 5 个圆形组成的图案的窗体

相关文章