1. 繪制指定矩形的邊框。
矩形的左邊緣和右邊緣分別位于 x 和 x + width,上邊緣和下邊緣分別位于 y 和 y + height。使用圖形上下文的當前顏色繪制該矩形。
public void drawRect(int x, int y, int width, int height)2.填充指定的矩形。
該矩形左邊緣和右邊緣分別位于 x 和 x + width - 1。上邊緣和下邊緣分別位于 y 和 y + height - 1。 得到的矩形覆蓋 width 像素寬乘以 height 像素高的區域。使用圖形上下文的當前顏色填充該矩形。
public abstract void fillRect(int x, int y, int width, int height)
eg:
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
public class draw extends JFrame{public draw(){setSize(500,300);setDefaultCloseOperation(EXIT_ON_CLOSE);setLocationRelativeTo(null);}public void paint(Graphics g){g.setColor(Color.blue); //設置顏色g.drawRect(100,100,300,100); //畫出長為300,寬為100的矩形框。}public static void main(String[] args){new draw().setVisible(true);}
}
1.用此圖形上下文的當前顏色繪制圓角矩形的邊框。矩形的左邊緣和右邊緣分別位于 x 和 x + width。矩形的上邊緣和下邊緣分別位于 y 和 y + height。
public abstract void drawRoundRect(int x, int y, int width, int height,int arcWidth, int arcHeight)2.用當前顏色填充指定的圓角矩形。矩形的左邊緣和右邊緣分別位于 x 和 x + width - 1。矩形的上邊緣和下邊緣分別位于 y 和 y + height - 1。public abstract void fillRoundRect(int x, int y, int width, int height,int arcWidth, int arcHeight)PS:參數 arcWidth 表示4個角弧度的水平直徑,arcHeight 表示4個角弧度的垂直直徑。
eg:
g.drawRoundRect(100,100,300,100, 40, 40);
1.繪制指定矩形的 3-D 高亮顯示邊框。矩形的邊是高亮顯示的,以至于從左上角看呈斜面并加亮。 高亮顯示效果所用的顏色根據當前顏色確定。得到的矩形覆蓋width + 1 像素寬乘以 height + 1 像素高的區域。
public void draw3DRect(int x, int y, int width, int height, boolean raised)2. 繪制一個用當前顏色填充的 3-D 高亮顯示矩形。矩形的邊是高亮顯示的,以至于從左上角看呈斜面并加亮。 高亮顯示效果所用的顏色根據當前顏色確定
public void fill3DRect(int x, int y, int width, int height, boolean raised)PS:參數 raised 表示一個用于確定矩形是凸出平面顯示還是凹入平面顯示的 boolean 值。
eg:
g.draw3DRect(80,100,200,100,true); // 畫一個3D矩形線框
運行結果:
eg:
g.fill3DRect(80,100,200,100,true);
運行結果:
6.畫橢圓形
1.繪制橢圓的邊框。得到一個圓或橢圓,它剛好能放入由 x、y、width 和 height 參數指定的矩形中。橢圓覆蓋區域的寬度為 width + 1 像素,高度為 height + 1 像素。
public abstract void drawOval(int x, int y, int width, int height)使用當前顏色填充外接指定矩形框的橢圓。
public abstract void fillOval(int x, int y, int width, int height)
eg:
g.drawOval(80,100,200,100);
運行結果:
eg:
g.fillOval(80,100,200,100);
運行結果:
7.畫圓弧
1.繪制一個覆蓋指定矩形的圓弧或橢圓弧邊框。
public abstract void drawArc(int x, int y, int width, int height,int startAngle, int arcAngle)2.填充覆蓋指定矩形的圓弧或橢圓弧。
public abstract void fillArc(int x, int y, int width, int height,int startAngle, int arcAngle)PS:參數 startAngle 表示開始角度,arcAngle 表示相對于開始角度而言弧跨越的角度。
得到的弧從 startAngle 開始跨越 arcAngle 度。對角度的解釋如下:0 度角位于 3 點鐘位置。正值指示逆時針旋轉,負值指示順時針旋轉。弧的中心是矩形的中心,此矩形的原點為 (x, y),大小由 width 和 height 參數指定。得到的弧覆蓋 width + 1 像素寬乘以 height + 1 像素高的區域。角度是相對于外接矩形的非正方形區域指定的,45 度角始終落在從橢圓中心到外接矩形右上角的連線上。
eg:
g.drawArc(80,100,200,100,0,120);
eg:int x[]={140,180,170,180,140,100,110,100}; int y[]={50,125,175,225,250,225,175,125}; Polygon polygon2 = new Polygon(x,y,8); g.setColor(Color.yellow); g.fillPolygon(polygon2);
運行結果:
9.畫字符串
使用此圖形上下文的當前字體和顏色繪制由指定 string 給定的文本。最左側字符的基線位于此圖形上下文坐標系的 (x, y) 位置處。public abstract void drawString(String str, int x, int y)
eg:g.setColor(Color.GREEN);g.setFont(new Font("楷體", Font.HANGING_BASELINE, 20));g.drawString("使用畫筆繪制的字符串內容", 80, 150);
運行結果:
10.畫圖像
繪制圖像的常用方法:
boolean drawImage(Image img, int x, int y, ImageObserver observer)
boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)
boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer)
boolean drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer)參數:Image img – 需要繪制的圖像。int x, int y – 圖像左上角坐標。int width, int height – 圖像的寬度和高度。Color bgcolor – 背景色,即圖像下面的顏色。如果圖像包含透明象素時這會有用,圖像將在指定顏色背景下顯示。ImageObserver observer – 一個實現ImageObserver 接口的對象。它將該對象登記為一個圖像觀察者,因此當圖像的任何新信息可見時它被通知。大多組件可以簡單的指定this。組件可以指定this作為圖像觀察者的原因是Component 類實現了ImageObserver 接口。當圖像數據被加載時它的實現調用repaint方法,這通常是你所期望的。drawImage 方法只要要顯示的圖像數據已經加載完就返回。如果你要確保drawImage只繪制完整的圖像,那么你需要跟蹤圖像的加載。
eg:Image img = Toolkit.getDefaultToolkit().getImage("D:\\java\\java工作區\\test\\src\\test2\\表白圖片.png");g.drawImage(img, 200, 100, 500, 500, Color.LIGHT_GRAY, this);
通過使用當前繪圖表面的背景色進行填充來清除指定的矩形。public abstract void clearRect(int x, int y, int width, int height)
eg:
g.setColor(Color.blue);
g.fillOval(50,50,100,100);
g.clearRect(70,70,40,55);
限制圖形在指定區域內的顯示,超出部分不顯示。多個限制區有覆蓋時,得到限制區域的交集區域。public abstract void clipRect(int x, int y, int width, int height)
eg:
g.clipRect(0,0,100,50);
g.clipRect(50,25,100,50);相當于g.clipRect(50,25,50,25);
12.復制圖形
利用Graphics類的方法copyArea()可以實現圖形的復制,其使用格式是:
dx和dy分別表示將圖形粘貼到原位置偏移的像素點數,正值為往右或往下偏移是,負值為往左或往上偏移量。位移的參考點是要復制矩形的左上角坐標。public abstract void copyArea(int x, int y, int width, int height, int dx, int dy)
eg:g.drawRect(50,50,200,100);g.fillRect(60,60,60,70);g.copyArea(40,50,60,70,200,200);