java Graphics2D类
生活随笔
收集整理的這篇文章主要介紹了
java Graphics2D类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Java?2D擁有強大的二維圖形處理能力,這些功能主要是由Graphics2D類來完成的,該類是Graphics類的一個子類。它的特點是把所繪的圖形當成一個對象來處理,繪制前先創建對象。
繪制2D直線
調用格式:
先創建2D線形對象:
Line2D?line=new?Line2D.Double(double?x1,double?y1,double?x2,double?y2);
然后再繪制2D直線line。
作用:繪制一條二維直線。
參數說明:x1,y1,二維直線的起始坐標;x2,y2,二維直線的終點坐標。
使用舉例:
Java code?
運行結果:
繪制2D矩形
調用格式:
先創建2D矩形對象:
Rectangle2D?rect=new?Rectangle2D.Double(double?x1,double?y1,double?width,double?height);
然后再繪制2D矩形。
作用:繪制一個2D矩形。
參數說明:x1,y1,2D矩形的左上角坐標;width,height,2D矩形的寬和高。
使用舉例:
Java code?
運行結果:
繪制2D圓角矩形
調用格式:
先創建2D圓角矩形對象:
RoundRectangle2D?r_rect=new?RoundRectangle2D.Double(double?x1,double?y1,double?width,double?height,double?arcw,double?arch);
然后再繪制2D圓角矩形。
作用:繪制一個2D圓矩形。
參數說明:
x1,y1,width,height,分別為2D圓角矩形的左上角坐標、寬和高;
arcw,arch,分別為圓角的長軸和短軸。
使用舉例:
Java code?
運行結果:
繪制橢圓
調用格式:
先創建2D橢圓對象:
Ellipse2D?ellipse=new?Ellipse2D.Double(double?x1,double?y1,double?width,double?height?);
然后再繪制2D橢圓。
作用:繪制一個2D橢圓。
參數說明:x1,y1,width,height,分別為2D橢圓的左上角坐標、寬和高。
使用舉例:
Java code?
運行結果:
繪制2D園弧
調用格式:
先創建2D圓弧對象:
Arc2D?arc=new?Arc2D.Double(double?x1,double?y1,double?width,double?height?,double?starang,double?endang,arc2D.pie);
然后再繪制2D圓弧。
作用:繪制一條2D圓弧。
參數說明:
x1,y1,width,height,2D圓弧外接矩形的左上角坐標、寬和高。
Starang,ending,圓弧的起始角和終止角,單位為“度”。
最后一個參數的取值為:Arc2D.OPEN、Arc2D.PIE、Arc2D.CHORD分別代表開弧、餅弧、弓弧。
使用舉例:
Java code?
運行結果:
繪制二次曲線
調用格式:
先創建2D二次曲線對象:
QuadCurve2D?draw_c=new?QuadCurve2D.Double(double?x1,double?y1,double?x2,double?y2,double?x3,double?y3?);
然后再繪制二次曲線。
作用:繪制二次曲線。
參數說明:x1,y1,x2,y2,分別為兩個端點坐標。X3,y3,控制點坐標。
使用舉例:
Java code?
運行結果:
Color類
java語言的顏色類——Color類為我們定義了豐富的顏色值常量和顏色值產生的方法,能夠讓我們控制各種色彩的顯示。其每一種顏色都是由“紅-綠-藍”三原色合成。?
Color()
調用格式:public?color(int?red,int?green,int?blue)
作用:配置顏色。
參數解釋:red,green,blue,分別為配置三原色(紅、綠、藍)的色值。
使用舉例:
Java code?
運行結果:
Getred()
調用格式:public?int?getred()
作用:返回當前色值中的紅色含量值。
Getblue()
調用格式:public?int?getblue()
作用:返回當前色值中的藍色含量值。
GetGreen()
調用格式:public?int?getGreen()
作用:返回當前色值中的綠色含量值。
以上三個方法舉例如下:
Java code?
運行結果:
Setcolor()
調用格式:public?abstact?void?Setcolor(?Color?c)
作用:設置當前顏色值。參數解釋:c,顏色值。
Getcolor()
調用格式:public?abstact?color?getcolor()
作用:返回當前顏色值。
舉例如下:
Java code?
運行結果:
Font類
在前面章節的很多例子中我們都使用了輸出文本的方法。在沒有設置字體、字型號的情況下,其輸出都是采用的默認字體和字型號。在java語言中,我們可以通過Font類來設定不同的輸出字體、字型號,使我們的界面更美觀、更漂亮。下面我們就Font類的使用做一詳解。
Java語言中,設置字體輸出的操作順序一般是:先用Font類創建字體對象,然后用setFont()方法設置輸出字體,最后用drawString()輸出結果。
利用Font類建立字體
Font類建立字體調用格式:?
Font?crea_Font=new?Font(string?font_name,int?font_style,int?font_size)
參數說明:
font_name,字體的名稱。如:“SansSerif”、“Times”、“黑體”、“宋體”等。
font_style,字體的樣式。如:Font.PLAIN(正常體)、Font.BOLD(加粗體)、Font.ITALIC(斜體)等。
font_size,字體大小的磅值,是一個數字。如:10、12、14、18、20等。
使用舉例:
Java code?
運行結果:
設置字體的方法setFont()
1、作用:設置當前輸出字符串的字體。
2、setFont()調用格式:?public?void?setFont(Font?font)
3、參數說明:font,字體對象。
輸出字體的方法drawstring()
1、作用:按當前設定的字體輸出字符串。
2、setFont()調用格式:?public?void?drawstring(string?s,int?x,int?y)
3、參數說明:s——輸出的字符串。X,y——字符串的輸出坐標(x,y)
圖像的處理
Java語言支持兩類格式的圖像處理,它們是GIF格式與JPEG格式。與圖形處理不同的是圖形處理是Java程序繪制出來的,而圖像是用其他工具生成的特殊二進制文件。
Java語言處理圖像的一般步驟是:先加載圖像,然后輸出圖像。
加載圖像
加載圖像常在程序的初始化方法中進行,使用的方法是getImage()。
調用格式:
Java code?
作用:加載指定的圖像文件。該方法有返回值,返回值是一個Image對象。
參數解釋:ur,URL(Universal?Resource?Locator)類的對象,用于指出圖像文件所在的地址。
Fname,圖像文件名稱。?
輸出圖像
顯示使用的方法是drawgetImage()。
調用格式:
Java code?
作用:將加載的圖像顯示與指定位置。
參數解釋:
img,顯示的圖像。
X,y,圖像顯示位置的左上角坐標。
Width,height,圖像實際顯示時的高度、寬度。
bcolor,圖像顯示區域的背景色。
Observer,圖像加載跟蹤器。其值常設為this,用以表示用Applet做跟蹤器。
以上兩個方法舉例如下:
Java code?
運行結果:
繪制2D直線
調用格式:
先創建2D線形對象:
Line2D?line=new?Line2D.Double(double?x1,double?y1,double?x2,double?y2);
然后再繪制2D直線line。
作用:繪制一條二維直線。
參數說明:x1,y1,二維直線的起始坐標;x2,y2,二維直線的終點坐標。
使用舉例:
Java code?
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public?class?draw_2d_line?extends?Applet { ??public?void?paint(Graphics?g) ??{ ????Graphics2D?d2; ????d2=(Graphics2D)g;//轉換d為2D對象 ????d2.setColor(Color.red); ????Line2D?line=new?Line2D.Double(100,10,100,300);//創建line對象 ????d2.draw(line);//畫出2D直線 ????d2.setColor(Color.blue); ????Line2D?line1=new?Line2D.Double(0,300,100,300);//創建line對象 ????d2.draw(line1);//畫出2D直線 ??} } |
運行結果:
繪制2D矩形
調用格式:
先創建2D矩形對象:
Rectangle2D?rect=new?Rectangle2D.Double(double?x1,double?y1,double?width,double?height);
然后再繪制2D矩形。
作用:繪制一個2D矩形。
參數說明:x1,y1,2D矩形的左上角坐標;width,height,2D矩形的寬和高。
使用舉例:
Java code?
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public?class?draw_2d_Rect?extends?Applet { ??public?void?paint(Graphics?g) ??{ ????Graphics2D?d2; ????d2=(Graphics2D)g;//轉換g為2D對象 ????d2.setColor(Color.red); ????Rectangle2D?rect=new?Rectangle2D.Double(40,50,250,300);//創建矩形對象 ????d2.draw(rect);//畫出矩形 ????d2.setColor(Color.blue); ????Rectangle2D?rect1=new?Rectangle2D.Double(80,100,250,300);//創建矩形對象 ????d2.draw(rect1);//畫出矩形 ??} } |
運行結果:
繪制2D圓角矩形
調用格式:
先創建2D圓角矩形對象:
RoundRectangle2D?r_rect=new?RoundRectangle2D.Double(double?x1,double?y1,double?width,double?height,double?arcw,double?arch);
然后再繪制2D圓角矩形。
作用:繪制一個2D圓矩形。
參數說明:
x1,y1,width,height,分別為2D圓角矩形的左上角坐標、寬和高;
arcw,arch,分別為圓角的長軸和短軸。
使用舉例:
Java code?
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public?class?draw_2d_Rect?extends?Applet { ??public?void?paint(Graphics?g) ??{ ????Graphics2D?d2; ????d2=(Graphics2D)g;//轉換g為2D對象 ????d2.setColor(Color.red); ????RoundRectangle2D?rect=new?RoundRectangle2D.Double(40,50,50,30,20,20);//創建矩//形對象 ????d2.draw(rect);//畫出矩形 ????d2.setColor(Color.blue); ????RoundRectangle2D?rect1=new?RoundRectangle2D.Double(80,100,50,30,20,20);//創建//矩形對象 ????d2.draw(rect1);//畫出矩形 ??} } |
運行結果:
繪制橢圓
調用格式:
先創建2D橢圓對象:
Ellipse2D?ellipse=new?Ellipse2D.Double(double?x1,double?y1,double?width,double?height?);
然后再繪制2D橢圓。
作用:繪制一個2D橢圓。
參數說明:x1,y1,width,height,分別為2D橢圓的左上角坐標、寬和高。
使用舉例:
Java code?
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public?class?draw_2d_Rect?extends?Applet { ??public?void?paint(Graphics?g) ??{ ????Graphics2D?d2; ????d2=(Graphics2D)g;//轉換g為2D對象 ????d2.setColor(Color.red); ????Ellipse2D??ellipse?=new?Ellipse2D.Double(10,10,100,200);//創建橢圓對象 ????d2.draw(ellipse);//畫出橢圓 ????d2.setColor(Color.blue); ????Ellipse2D?ellipse1=new?Ellipse2D.Double(20,20,100,200);//創建橢圓對象 ????d2.draw(ellipse1);//畫出矩形 ??} } |
運行結果:
繪制2D園弧
調用格式:
先創建2D圓弧對象:
Arc2D?arc=new?Arc2D.Double(double?x1,double?y1,double?width,double?height?,double?starang,double?endang,arc2D.pie);
然后再繪制2D圓弧。
作用:繪制一條2D圓弧。
參數說明:
x1,y1,width,height,2D圓弧外接矩形的左上角坐標、寬和高。
Starang,ending,圓弧的起始角和終止角,單位為“度”。
最后一個參數的取值為:Arc2D.OPEN、Arc2D.PIE、Arc2D.CHORD分別代表開弧、餅弧、弓弧。
使用舉例:
Java code?
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | public?class?draw_2d_Arc?extends?Applet { ??public?void?paint(Graphics?g) ??{ ????Graphics2D?d2; ????d2=(Graphics2D)g;//轉換g為2D對象 ????d2.setColor(Color.red); ????Arc2D?arc1=new?Arc2D.Double(20,30,80,55,0,90,Arc2D.OPEN);//創建對象 ????d2.draw(arc1);//畫出開弧,紅色 ????d2.setColor(Color.blue); ????Arc2D?arc2=new?Arc2D.Double(40,30,80,55,0,90,Arc2D.PIE);//創建對象 ????d2.draw(arc2);//畫出餅弧,藍色 ????d2.setColor(Color.green); ????Arc2D?arc3=new?Arc2D.Double(80,30,80,55,0,90,Arc2D.CHORD);//創建對象 ????d2.draw(arc3);//畫出弓弧,綠色 ??} } |
運行結果:
繪制二次曲線
調用格式:
先創建2D二次曲線對象:
QuadCurve2D?draw_c=new?QuadCurve2D.Double(double?x1,double?y1,double?x2,double?y2,double?x3,double?y3?);
然后再繪制二次曲線。
作用:繪制二次曲線。
參數說明:x1,y1,x2,y2,分別為兩個端點坐標。X3,y3,控制點坐標。
使用舉例:
Java code?
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | public?class?draw_2d_Rect?extends?Applet { ??public?void?paint(Graphics?g) ??{ ????Graphics2D?d2; ????d2=(Graphics2D)g;//轉換g為2D對象 ????d2.setColor(Color.red); ????QuadCurve2D?draw_c1=new?QuadCurve2D.Double(10,50,100,100,20,40);//創建對象 ????d2.draw(draw_c1);//畫出 ????d2.setColor(Color.blue); ????QuadCurve2D?draw_c2=new?QuadCurve2D.Double(20,60,100,100,40,80);//創建對象 ????d2.draw(draw_c2);//畫出 ????d2.setColor(Color.green); ????QuadCurve2D?draw_c3=new?QuadCurve2D.Double(30,70,100,100,80,160);//創建對象 ????d2.draw(draw_c3);//畫出??? ??} } |
運行結果:
Color類
java語言的顏色類——Color類為我們定義了豐富的顏色值常量和顏色值產生的方法,能夠讓我們控制各種色彩的顯示。其每一種顏色都是由“紅-綠-藍”三原色合成。?
Color()
調用格式:public?color(int?red,int?green,int?blue)
作用:配置顏色。
參數解釋:red,green,blue,分別為配置三原色(紅、綠、藍)的色值。
使用舉例:
Java code?
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | class?circle { ??protected?int?x,y,width,height; ??circle() ??{ ????x=35; ????y=35; ????width=50; ????height=100; ??} } public?class?showcircle?extends?Applet { ??circle?t=new?circle(); ??public?void?paint(Graphics?g) ??{ ????Color?co=new?Color(255,0,0); ????g.setColor(co); ????g.drawOval(t.x+150,t.y+150,t.width,t.height); ????Color?co1=new?Color(0,0,255); ????g.setColor(co1); ????g.fillOval(t.x,t.y,t.width,t.height); ??} } |
運行結果:
Getred()
調用格式:public?int?getred()
作用:返回當前色值中的紅色含量值。
Getblue()
調用格式:public?int?getblue()
作用:返回當前色值中的藍色含量值。
GetGreen()
調用格式:public?int?getGreen()
作用:返回當前色值中的綠色含量值。
以上三個方法舉例如下:
Java code?
| 1 2 3 4 5 6 7 8 9 10 11 12 | public?class?showcircle?extends?Applet { ??public?void?paint(Graphics?g) ??{ ????Color?co=new?Color(255,0,0); ????g.setColor(co); ????Color?c=g.getColor(); ????g.drawString("紅色含量值"+c.getRed(),10,20); ????g.drawString("綠色含量值"+c.getGreen(),10,40); ????g.drawString("藍色含量值"+c.getBlue(),10,60); ??} } |
運行結果:
Setcolor()
調用格式:public?abstact?void?Setcolor(?Color?c)
作用:設置當前顏色值。參數解釋:c,顏色值。
Getcolor()
調用格式:public?abstact?color?getcolor()
作用:返回當前顏色值。
舉例如下:
Java code?
| 1 2 3 4 5 6 7 8 | public?class?showcircle?extends?Applet { ??public?void?paint(Graphics?g) ??{ ????g.setColor(g.getColor()); ????g.fillOval(20,30,40,50); ??} } |
運行結果:
Font類
在前面章節的很多例子中我們都使用了輸出文本的方法。在沒有設置字體、字型號的情況下,其輸出都是采用的默認字體和字型號。在java語言中,我們可以通過Font類來設定不同的輸出字體、字型號,使我們的界面更美觀、更漂亮。下面我們就Font類的使用做一詳解。
Java語言中,設置字體輸出的操作順序一般是:先用Font類創建字體對象,然后用setFont()方法設置輸出字體,最后用drawString()輸出結果。
利用Font類建立字體
Font類建立字體調用格式:?
Font?crea_Font=new?Font(string?font_name,int?font_style,int?font_size)
參數說明:
font_name,字體的名稱。如:“SansSerif”、“Times”、“黑體”、“宋體”等。
font_style,字體的樣式。如:Font.PLAIN(正常體)、Font.BOLD(加粗體)、Font.ITALIC(斜體)等。
font_size,字體大小的磅值,是一個數字。如:10、12、14、18、20等。
使用舉例:
Java code?
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public?class?showfont?extends?Applet { ??Font?font1=new?Font(“Times?New?Roman”,Font.BOLD,14); ??Font?font2=new?Font(“SansSerif”,Font.ITALIC,48); ??Font?font3=new?Font(“Serif”,Font.PLAIN,60); ??public?void?paint(Graphics?g) ??{ ????g.setFont(font1); ????g.drawstring(“這是Times?New?Roman字體”,20,30); ????g.setFont(font2); ????g.drawstring(“這是SansSerif字體”,60,30); ????g.setFont(font3); ????g.drawstring(“這是Serif字體”,80,30); ??} } |
運行結果:
設置字體的方法setFont()
1、作用:設置當前輸出字符串的字體。
2、setFont()調用格式:?public?void?setFont(Font?font)
3、參數說明:font,字體對象。
輸出字體的方法drawstring()
1、作用:按當前設定的字體輸出字符串。
2、setFont()調用格式:?public?void?drawstring(string?s,int?x,int?y)
3、參數說明:s——輸出的字符串。X,y——字符串的輸出坐標(x,y)
圖像的處理
Java語言支持兩類格式的圖像處理,它們是GIF格式與JPEG格式。與圖形處理不同的是圖形處理是Java程序繪制出來的,而圖像是用其他工具生成的特殊二進制文件。
Java語言處理圖像的一般步驟是:先加載圖像,然后輸出圖像。
加載圖像
加載圖像常在程序的初始化方法中進行,使用的方法是getImage()。
調用格式:
Java code?
| 1 | getImage(URL?ur,String?Fname) |
作用:加載指定的圖像文件。該方法有返回值,返回值是一個Image對象。
參數解釋:ur,URL(Universal?Resource?Locator)類的對象,用于指出圖像文件所在的地址。
Fname,圖像文件名稱。?
輸出圖像
顯示使用的方法是drawgetImage()。
調用格式:
Java code?
| 1 | drawImage(Image?img,int?x,int?y,int?width,int?height,Color?bcolor,ImageObserver?observer) |
作用:將加載的圖像顯示與指定位置。
參數解釋:
img,顯示的圖像。
X,y,圖像顯示位置的左上角坐標。
Width,height,圖像實際顯示時的高度、寬度。
bcolor,圖像顯示區域的背景色。
Observer,圖像加載跟蹤器。其值常設為this,用以表示用Applet做跟蹤器。
以上兩個方法舉例如下:
Java code?
| 1 2 3 4 5 6 7 8 9 10 11 12 | public?class?show_image?extends?Applet { ??Image?img; ??public?void?init(){ ????img=getImage(getCodeBase(),"Fish.jpg"); ??} ??//getCodeBase()用于指定當前路徑 ??public?void?paint(Graphics?g) ??{ ????g.drawImage(img,30,20,this); ??} } |
運行結果:
總結
以上是生活随笔為你收集整理的java Graphics2D类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java.awt.Graphics2D绘
- 下一篇: java构造函数经典详解