Graphics类提供基本绘图方法,Graphics类提供基本的几何图形绘制方法,主要有:画线段、画矩形、画圆、画带颜色的图形、画椭圆、画圆弧、画多边形、画字符串等。
画线段
drawLine
public abstract void drawLine(int x1,
int y1,
int x2,
int y2)
- 在此图形上下文的坐标系中,使用当前颜色在点
(x1, y1)
和(x2, y2)
之间画一条线 -
- 参数:
-
x1
- 第一个点的 x 坐标。 -
y1
- 第一个点的 y 坐标。 -
x2
- 第二个点的 x 坐标。 -
y2
- 第二个点的 y 坐标。 -
g.drawLine(10, 50, 100, 100);
画矩形
drawRect
public void drawRect(int x,
int y,
int width,
int height)
- 绘制指定矩形的边框。矩形的左边缘和右边缘分别位于
x
和x + width
。上边缘和下边缘分别位于y
和y + height
。使用图形上下文的当前颜色绘制该矩形。 -
- 参数:
-
x
- 要绘制矩形的 x 坐标。 -
y
- 要绘制矩形的 y 坐标。 -
width
- 要绘制矩形的宽度。 -
height
- 要绘制矩形的高度。 -
g.drawRect(120, 50, 200, 100);
画椭圆形
public abstract void drawOval(int x,
int y,
int width,
int height)
- 绘制椭圆的边框。得到一个圆或椭圆,它刚好能放入由
x
、y
、width
和height
参数指定的矩形中。椭圆覆盖区域的宽度为
width + 1
像素,高度为height + 1
像素。 -
- 参数:
-
x
- 要绘制椭圆的左上角的 x 坐标。 -
y
- 要绘制椭圆的左上角的 y 坐标。 -
width
- 要绘制椭圆的宽度。 -
height
- 要绘制椭圆的高度。 -
g.drawOval(160, 160, 200, 100);
画带颜色的图形
setColor
public abstract void setColor(Color c)
- 将此图形上下文的当前颜色设置为指定颜色。使用此图形上下文的所有后续图形操作均使用这个指定的颜色。
-
- 参数:
-
c
- 新的呈现颜色。 -
g.setColor(Color.yellow);
g.fillRect(20,70,20,30); // 画矩形着色块
画圆
drawRoundRect
public abstract void drawRoundRect(int x,
int y,
int width,
int height,
int arcWidth,
int arcHeight)
- 用此图形上下文的当前颜色绘制圆角矩形的边框。矩形的左边缘和右边缘分别位于
x
和x + width
。矩形的上边缘和下边缘分别位于y
和y + height
。 -
- 参数:
-
x
- 要绘制矩形的 x 坐标。 -
y
- 要绘制矩形的 y 坐标。 -
width
- 要绘制矩形的宽度。 -
height
- 要绘制矩形的高度。 -
arcWidth
- 4 个角弧度的水平直径。 -
arcHeight
- 4 个角弧度的垂直直径。 -
g.setColor(Color.red); g.fillRoundRect(80,100,100,100,100,100);//画圆块
画圆弧
drawArc
public abstract void drawArc(int x,
int y,
int width,
int height,
int startAngle,
int arcAngle)
- 绘制一个覆盖指定矩形的圆弧或椭圆弧边框。
得到的弧从
startAngle
开始跨越arcAngle
度,并使用当前颜色。对角度的解释如下:0 度角位于 3 点钟位置。正值指示逆时针旋转,负值指示顺时针旋转。弧的中心是矩形的中心,此矩形的原点为 (x, y),大小由
width
和height
参数指定。得到的弧覆盖
width + 1
像素宽乘以height + 1
像素高的区域。角度是相对于外接矩形的非正方形区域指定的,45 度角始终落在从椭圆中心到外接矩形右上角的连线上。因此,如果外接矩形在一个轴上远远长于另一个轴,则弧段的起点和结束点的角度将沿边框长轴发生更大的偏斜。
-
- 参数:
-
x
- 要绘制弧的左上角的 x 坐标。 -
y
- 要绘制弧的左上角的 y 坐标。 -
width
- 要绘制弧的宽度。 -
height
- 要绘制弧的高度。 -
startAngle
- 开始角度。 -
arcAngle
- 相对于开始角度而言,弧跨越的角度。g.drawArc(10,40,90,50,0,180); // 画圆弧线 g.drawArc(100,40,90,50,180,180); // 画圆弧线 g.setColor(Color.yellow);
g.fillArc(10,100,40,40,0,-270); // 填充缺右上角的四分之三的椭圆 g.setColor(Color.green);
g.fillArc(60,110,110,60,-90,-270); // 填充缺左下角的四分之三的椭圆
画多边形
/**
* 绘制一个由 x 和 y 坐标数组定义的闭合多边形。每对 (x, y) 坐标定义一个点。
*/
public abstract void drawPolygon(int[] xPoints, int[] yPoints, int nPoints);
/**
* 填充由 x 和 y 坐标数组定义的闭合多边形。
*/
public abstract void fillPolygon(int[] xPoints, int[] yPoints, int nPoints)
int px[] = { 210, 220, 270, 250, 240 };
int py[] = { 220, 250, 300, 270, 220 };
g.drawPolygon(px, py, px.length);
画字符串
public abstract void drawString(String str,
int x,
int y)
- 使用此图形上下文的当前字体和颜色绘制由指定 string 给定的文本。最左侧字符的基线位于此图形上下文坐标系的 (x, y) 位置处。
-
- 参数:
-
str
- 要绘制的 string。 -
x
- x 坐标。 -
y
- y 坐标。g.setColor(Color.GREEN);
g.setFont(new Font("楷体", Font.BOLD, 20));
g.drawString("使用画笔绘制的字符串内容", 220, 345);