Java图形与文本(6)

实例007  绘制多边形

实例说明

本实例演示如何在Java中绘制多边形。运行程序,将在窗体上绘制多边形,效果如图1.7所示。

关键技术

本实例主要是通过在JPanel类的子类中,重写JComponent类的paint()方法,并在该方法中使用Graphics类的drawPolygon()和fillPolygon()方法来实现的。

(1)使用Graphics类的drawPolygon()方法绘制的多边形,只有线条而没有填充色,该方法的定义如下:

public abstract void drawPolygon(int[] xPoints, int[] yPoints, int nPoints)

参数说明

? xPoints:要绘制多边形的x坐标数组。

? yPoints:要绘制多边形的y坐标数组。

? nPoints:要绘制多边形的顶点总数。

(2)使用Graphics类的fillPolygon()方法可绘制带填充色的多边形,该方法的定义如下:

public abstract void fillPolygon(int[] xPoints, int[] yPoints, int nPoints)

参数说明

? xPoints:要绘制填充多边形的x坐标数组。

? yPoints:要绘制填充多边形的y坐标数组。

? nPoints:要绘制填充多边形的顶点总数。

设计过程

(1)新建一个项目。

(2)在项目中创建一个继承JFrame类的DrawPolygonFrame窗体类。

(3)在DrawPolygonFrame窗体类中,创建内部面板类DrawPolygonPanel,并重写JComponent类的paint()方法,在该方法中使用Graphics类的drawPolygon()和drawPolygon()方法绘制多边形。

(4)将内部面板类DrawPolygonPanel的实例,添加到窗体类DrawPolygonFrame的内容面板上,用于在窗体上显示绘制的多边形,代码如下:

class DrawPolygonPanel extends JPanel {  // 创建内部面板类

    public void paint(Graphics g) {  // 重写paint()方法

        int[] x1 = { 100,120,180,140,150,100,50,60,20,80 };  // 多边形的横坐标

        int[] y1 = { 20,85,90,120,180,140,180,120,90,85 };  // 多边形的纵坐标

        int n1 = 10; // 多边形的边数

  g.fillPolygon(x1, y1, n1); // 绘制实心多边形

        int[] x2 = { 210, 270, 310, 270, 210, 170 };  // 多边形的横坐标

        int[] y2 = { 20, 20, 65, 110, 110, 65 };  // 多边形的纵坐标

        int n2 = 6; // 多边形的边数

        g.fillPolygon(x2, y2, n2); // 绘制实心多边形

        int[] x3 = { 180, 220, 260, 240, 260, 220, 180, 200 };  // 多边形的横坐标

        int[] y3 = { 120, 140, 120, 160, 200, 180, 200, 160 };  // 多边形的纵坐标

        int n3 = 8; // 多边形的边数

        g.drawPolygon(x3, y3, n3); // 绘制空心多边形

    }

}

 

读书导航