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); // 畫矩形著色塊
畫圓
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);//畫圓塊
畫圓弧
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)
str
- 要繪制的 string。x
- x 坐標。y
- y 坐標。
g.setColor(Color.GREEN); g.setFont(new Font("楷體", Font.BOLD, 20)); g.drawString("使用畫筆繪制的字符串內容", 220, 345);