JAVA程序設(shè)計基礎(chǔ)6_第1頁
JAVA程序設(shè)計基礎(chǔ)6_第2頁
JAVA程序設(shè)計基礎(chǔ)6_第3頁
JAVA程序設(shè)計基礎(chǔ)6_第4頁
JAVA程序設(shè)計基礎(chǔ)6_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、6.1 Java圖形處理概述圖形處理概述6.2 基本圖形的輸出基本圖形的輸出6.3 設(shè)置圖形的顏色設(shè)置圖形的顏色6.4 文字的圖形化輸出文字的圖形化輸出Java系統(tǒng)及應(yīng)用程序是如何實現(xiàn)圖形系統(tǒng)及應(yīng)用程序是如何實現(xiàn)圖形功能的呢?首先,功能的呢?首先,Java系統(tǒng)在系統(tǒng)在AWT構(gòu)件類構(gòu)件類的根類的根類Component類中預(yù)置了一種稱作類中預(yù)置了一種稱作Paint(Graphics g)的方法,該方法的參)的方法,該方法的參數(shù)是一個圖形類對象數(shù)是一個圖形類對象Graphics g,通常它,通常它是由系統(tǒng)自動生成而不是由用戶程序來實是由系統(tǒng)自動生成而不是由用戶程序來實例化的,在類例化的,在類Grap

2、hics中系統(tǒng)預(yù)置了大量中系統(tǒng)預(yù)置了大量的用于圖形處理與輸出的方法,的用于圖形處理與輸出的方法,在在Paint()方法的重新定義中,可以通方法的重新定義中,可以通過過Graphics的對象的對象g來調(diào)用這些方法進行圖來調(diào)用這些方法進行圖形處理與輸出。特別注意的是形處理與輸出。特別注意的是Paint()方法方法的調(diào)用是由程序運行的環(huán)境而不是程序本的調(diào)用是由程序運行的環(huán)境而不是程序本身來完成的,每當(dāng)一個身來完成的,每當(dāng)一個AWT構(gòu)件首次顯示構(gòu)件首次顯示或在部分顯示已被破壞而必須刷新時該方或在部分顯示已被破壞而必須刷新時該方法被自動地調(diào)用。顯示的破壞可能發(fā)生在法被自動地調(diào)用。顯示的破壞可能發(fā)生在任何

3、時刻,因此,你的程序必須能在任意任何時刻,因此,你的程序必須能在任意時刻更新顯示。時刻更新顯示。在在Graphics類中使用類中使用drawLine*()方法方法畫一條線段,其調(diào)用格式如下:畫一條線段,其調(diào)用格式如下: drawLine(int x1,int y1,int x2,int y2)Graphics類中提供了類中提供了3種類型的矩形:種類型的矩形:普通矩形、圓角矩形和三維矩形。每一種普通矩形、圓角矩形和三維矩形。每一種矩形都提供兩種不同風(fēng)格的方法:一種是矩形都提供兩種不同風(fēng)格的方法:一種是僅畫出矩形的邊框;另一種是不僅畫出邊僅畫出矩形的邊框;另一種是不僅畫出邊框,并且還用相同的顏色將

4、整個矩形區(qū)域框,并且還用相同的顏色將整個矩形區(qū)域填滿。畫矩形的方法如下。填滿。畫矩形的方法如下。(1)drawRect(int x,int y,int width,int) 畫出普通矩形,參數(shù)畫出普通矩形,參數(shù)x和和y是是矩形左上角頂點坐標(biāo),而參數(shù)矩形左上角頂點坐標(biāo),而參數(shù)width和和 height表示所畫矩形的寬和高。表示所畫矩形的寬和高。(2)fillRect(int x,int y,int width,int height) 畫出一個填充型風(fēng)格的普通矩畫出一個填充型風(fēng)格的普通矩形。形。(3)drawRoundRect(int x,int y,int width,int height,i

5、nt arcWidth,int arcHeight) 畫出一個圓角矩形,參數(shù)中畫出一個圓角矩形,參數(shù)中除了具有和普通矩形含義相同的前除了具有和普通矩形含義相同的前4個參數(shù)個參數(shù)外,還增加了兩個用來描述圓角性質(zhì)的參外,還增加了兩個用來描述圓角性質(zhì)的參數(shù)。其中數(shù)。其中arcWidth代表了圓角弧的橫向直代表了圓角弧的橫向直徑;徑;arcHeight代表了圓角弧的縱向直徑。代表了圓角弧的縱向直徑。這兩個參數(shù)的值越大,圓角越大,反之則這兩個參數(shù)的值越大,圓角越大,反之則越小。越小。(4)fillRoundRect(int x,int y,int width,int height,int arcWidt

6、h,int arcHeight) 畫填充型的圓角矩形。畫填充型的圓角矩形。(5)draw3DRect(int x,int y,int width,int height,boolean raised) 畫三畫三維矩形,其中前維矩形,其中前4個參數(shù)意義同前,第個參數(shù)意義同前,第5個個參數(shù)參數(shù)raised定義該立體矩形是具有凸出定義該立體矩形是具有凸出(值為(值為true)還是凹下(值為)還是凹下(值為false)的效)的效果。果。(6)fill3DRect(int x,int y,int width,int height,boolean raised) 畫填充型三維矩形。畫填充型三維矩形。在在Ja

7、va中繪制橢圓是以其外接矩形作中繪制橢圓是以其外接矩形作為參數(shù)來實現(xiàn)的,其調(diào)用格式與畫普通矩為參數(shù)來實現(xiàn)的,其調(diào)用格式與畫普通矩形的方法相似。形的方法相似。(1)drawOval(int x,int y,int width,int height) 繪制一個橢圓,前兩繪制一個橢圓,前兩個參數(shù)為該橢圓外接矩形的左上頂點,后個參數(shù)為該橢圓外接矩形的左上頂點,后兩個參數(shù)為其外接矩形的寬和高,當(dāng)后兩兩個參數(shù)為其外接矩形的寬和高,當(dāng)后兩個參數(shù)的值相等時為圓。個參數(shù)的值相等時為圓。(2)fillOval(int x,int y,int width,int height) 繪制橢圓并將其內(nèi)部用前景色繪制橢圓并

8、將其內(nèi)部用前景色填充。填充?;∈菣E圓或圓的一部分,因而畫弧的弧是橢圓或圓的一部分,因而畫弧的方法就相當(dāng)于先畫一個橢圓,而后取該橢方法就相當(dāng)于先畫一個橢圓,而后取該橢圓中所需要的一部分。其調(diào)用格式如下。圓中所需要的一部分。其調(diào)用格式如下。(1)drawArc(int x,int y,int width,int height,int startAngle,int arcAngle) 畫一段弧,其前畫一段弧,其前4個參數(shù)的含個參數(shù)的含義與畫橢圓一樣,它確定了弧所在的橢圓義與畫橢圓一樣,它確定了弧所在的橢圓的大小及位置,第的大小及位置,第5個參數(shù)個參數(shù)startAngle表示表示該弧開始位置的角度,第

9、該弧開始位置的角度,第6個參數(shù)個參數(shù)arcAngle表示該弧轉(zhuǎn)過的角度。角度的參照系統(tǒng)規(guī)表示該弧轉(zhuǎn)過的角度。角度的參照系統(tǒng)規(guī)定水平向右為定水平向右為0,逆時鐘方向為正角度值,逆時鐘方向為正角度值,順時鐘方向為負(fù)角度值。如圖順時鐘方向為負(fù)角度值。如圖6-5所示。所示。圖圖6-5(2)fillArc(int x,int y,int width,int height,int startAngle,int arcAngle) 畫一段弧并且用前景色填充該弧所包含的畫一段弧并且用前景色填充該弧所包含的扇形區(qū)域,實際上這等于畫了一個扇形。扇形區(qū)域,實際上這等于畫了一個扇形。在在Java中畫多邊形是用其各個頂

10、點的中畫多邊形是用其各個頂點的坐標(biāo)作為參數(shù),并依次畫出連接各個頂點坐標(biāo)作為參數(shù),并依次畫出連接各個頂點的線段。畫一個多邊形的方法依照傳遞參的線段。畫一個多邊形的方法依照傳遞參數(shù)的方式不同可分為使用數(shù)組傳遞參數(shù)和數(shù)的方式不同可分為使用數(shù)組傳遞參數(shù)和使用使用Polygon對象傳遞參數(shù)兩類。對象傳遞參數(shù)兩類。(1)drawPolygon(int xPoints,int yPoints,int nPoints) 畫一個非填充畫一個非填充型的多邊形,其中型的多邊形,其中xPoints參數(shù)是一個整數(shù)參數(shù)是一個整數(shù)數(shù)組,用以存放多邊形坐標(biāo)點的數(shù)組,用以存放多邊形坐標(biāo)點的x坐標(biāo)值,坐標(biāo)值,yPoints參數(shù)存

11、放相應(yīng)的一組參數(shù)存放相應(yīng)的一組y坐標(biāo)值,坐標(biāo)值,nPoints則表示共有幾個坐標(biāo)點。則表示共有幾個坐標(biāo)點。(2)fillPolygon(int xPoints,int yPoints,int nPoints) 畫一個填充型的畫一個填充型的多邊形,其他同上。多邊形,其他同上。在上面介紹的畫非填充型和填充型多在上面介紹的畫非填充型和填充型多邊形方法中使用對象傳遞參數(shù)的形式為:邊形方法中使用對象傳遞參數(shù)的形式為:(1)drawPolygon(Polygon p)(2)fillPolygon(Polygon p)Java中每一種顏色都看成是由紅中每一種顏色都看成是由紅(R)、綠()、綠(G)、藍(lán)()、

12、藍(lán)(B)3原色組合而原色組合而成的。因此成的。因此Color類的構(gòu)造方法采用如下格類的構(gòu)造方法采用如下格式。式。(1)Color(int r,int g,int b) 其其中每個參數(shù)的值都在中每個參數(shù)的值都在0255之間,數(shù)值越之間,數(shù)值越大就表明這種顏色的成份越重。大就表明這種顏色的成份越重。例如(例如(0,0,0)代表黑色,()代表黑色,(255,0,0)代表紅色。當(dāng)然最終在屏幕上是否能顯)代表紅色。當(dāng)然最終在屏幕上是否能顯示所定義的顏色還取決于客戶端系統(tǒng)的調(diào)示所定義的顏色還取決于客戶端系統(tǒng)的調(diào)色板所支持的顏色種類的多少。若客戶端色板所支持的顏色種類的多少。若客戶端系統(tǒng)的調(diào)色板并不支持當(dāng)前

13、所定義的顏色系統(tǒng)的調(diào)色板并不支持當(dāng)前所定義的顏色值,就會在調(diào)色板中挑選最接近的顏色來值,就會在調(diào)色板中挑選最接近的顏色來代替。代替。(2)Color(int rgb) 指定一個整型指定一個整型數(shù)表示數(shù)表示3原色的混合值。其中原色的混合值。其中rgb作為二進作為二進制數(shù)的制數(shù)的1623位的值代表紅色,位的值代表紅色,815位代位代表綠色,表綠色,07位代表藍(lán)色。位代表藍(lán)色。為了能使用剛才生成好的為了能使用剛才生成好的Color對象對象來顯示文本及繪制圖形,需調(diào)用來顯示文本及繪制圖形,需調(diào)用Graphics類中的類中的setColor()方法把這個對象設(shè)置為系方法把這個對象設(shè)置為系統(tǒng)當(dāng)前所用的繪畫

14、顏色,其調(diào)用格式為:統(tǒng)當(dāng)前所用的繪畫顏色,其調(diào)用格式為:setColor(Color c);例如,想要用藍(lán)色來顯示文本,最簡例如,想要用藍(lán)色來顯示文本,最簡單的辦法是直接引用標(biāo)準(zhǔn)色的類變量:單的辦法是直接引用標(biāo)準(zhǔn)色的類變量:setColor(Color.blue);另外,另外,Java還提供了設(shè)置構(gòu)件背景和還提供了設(shè)置構(gòu)件背景和前景的方法,分別是前景的方法,分別是setBackground()方法方法和和setForeground()方法,它們都被定義在方法,它們都被定義在java.awt.Component類中,因此該方法能類中,因此該方法能被其子類自動繼承,其調(diào)用格式與被其子類自動繼承,其

15、調(diào)用格式與setColor()方法相同:方法相同:setBackground(Color c)setForeground(Color c)其中其中setForeground()方法將影響到容方法將影響到容器構(gòu)件中所有已經(jīng)用其他任何顏色所繪制器構(gòu)件中所有已經(jīng)用其他任何顏色所繪制的圖形及顯示的文本,把它們一下子都變的圖形及顯示的文本,把它們一下子都變?yōu)樵摲椒ㄋx的前景顏色,而不需用該為該方法所定義的前景顏色,而不需用該顏色重新一一繪制。顏色重新一一繪制。有有“set”必有相應(yīng)的必有相應(yīng)的“get”,Java中還中還提供了提供了getColor()方法(方法(Graphics類中)、類中)、get

16、Background()方法和方法和getForeground()方方法(法(Component類中)來分別獲取當(dāng)前的類中)來分別獲取當(dāng)前的繪圖顏色、構(gòu)件背景及前景顏色的對象。繪圖顏色、構(gòu)件背景及前景顏色的對象。在在Java中提供了一個中提供了一個font類,利用它類,利用它可以定義文本的字體、風(fēng)格及字號(大可以定義文本的字體、風(fēng)格及字號(大?。?,其構(gòu)造方法如下:?。?,其構(gòu)造方法如下:Font(String name, int style, int size)其中第其中第1個參數(shù)個參數(shù)name為字體名稱,如為字體名稱,如中文的中文的“宋體宋體”、“楷體楷體”,或是英文的,或是英文的“Times

17、Roman”體、體、“Courier”體等;第體等;第3個參數(shù)個參數(shù)size表示字體的大小;第表示字體的大??;第2個參數(shù)個參數(shù)style表示字體的風(fēng)格,表示字體的風(fēng)格,F(xiàn)ont類中已定義了類中已定義了類 變 量 來 表 示 字 體 的類 變 量 來 表 示 字 體 的 s t y l e 值 , 如值 , 如Font.BOLD(表示粗體)、(表示粗體)、Font.ITALIC(表示斜體)、(表示斜體)、Font.PLAIN(表示普通(表示普通體)。體)。由于它們被定義為整數(shù)常量,因此可由于它們被定義為整數(shù)常量,因此可以進行相加運算來生成復(fù)合以進行相加運算來生成復(fù)合style,例如想,例如想讓讓

18、style即是粗體又是斜體,可以這樣寫:即是粗體又是斜體,可以這樣寫:Font fn = new Font(TimesRoman, Font.BOLD+Font.ITALIC, 28);如果定義的字體不存在,系統(tǒng)就會以如果定義的字體不存在,系統(tǒng)就會以缺省字體來替代它。在使用字體之前,不缺省字體來替代它。在使用字體之前,不妨先查看一下系統(tǒng)目前究竟支持哪些字體,妨先查看一下系統(tǒng)目前究竟支持哪些字體,這就要用到這就要用到j(luò)ava.awt.Toolkit類中的類中的getFontlist()方法,它返回系統(tǒng)目前可用的方法,它返回系統(tǒng)目前可用的字體列表,然后就可決定到底選用哪種字字體列表,然后就可決定到底選用哪種字體。例如:體。例如: Toolkit systk = Toolkit.getDefaultToolkit(); String fonts = systk.getFontList();創(chuàng)建了創(chuàng)建了Font對象以后,還要用對象以后,還要用setFont(Font font)方法將所創(chuàng)建的)方法將所創(chuàng)建的Font對象設(shè)對象設(shè)為當(dāng)前所用的字體。然后就可以利用為當(dāng)前所用的字體。然后就可以利用Graphics類中提供的類中提供的drawString()、drawChars()等方法來顯示字符串與字符。等方法來顯示字符串與字符。文本

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論