2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第十二講Java與圖形打印本頁(yè)從這講開始我們來學(xué)習(xí)Java的一些高級(jí)應(yīng)用。這一講我們先來學(xué)習(xí)Java里怎么處理圖形,包括繪制簡(jiǎn)單的幾何圖形、填充圖形、加載圖形和顯示圖形等。主要要用到兩個(gè)類:Graphics類和Image類。1GraphicsGraphics類1.1概述在AWT中,使用java.awt.Graphics類來繪制圖形,比如:直線、折線、矩形,填充顏色等;它里面有47種公共方法,基本可以滿足各種繪圖需要。要學(xué)習(xí)Graphic

2、s類,我們首先來學(xué)習(xí)paint(Graphicsg)和repaint()方法。paint(Graphicsg)方法可以使一個(gè)Applet在屏幕上顯示某些信息,在applet的生命周期內(nèi)可以多次調(diào)用。例如,在applet被其他頁(yè)面遮擋之后又重新放到最前面或者改變?yōu)g覽器窗口大小時(shí),paint()方法會(huì)被調(diào)用。paint()方法有一個(gè)參數(shù)g,是一個(gè)Graphics的對(duì)象。repaint()方法的作用是重做paint()方法的動(dòng)作。它會(huì)調(diào)用up

3、date()方法,而update()方法先清除paint()方法以前所畫的內(nèi)容,然后調(diào)用paint()方法。1.2示例下面,我們就來學(xué)習(xí)Graphics類提供的各種圖形繪制方法。1.2.1直線(drawLine(intxintyintx2inty2):AWT不能畫不固定寬度的直線,其寬度一般是一個(gè)象素;1.2.2折線(drawPolyline(int[]xPointsint[]yPointsintnumPoints)該方法中,傳遞兩個(gè)數(shù)

4、組:一個(gè)數(shù)組指定每個(gè)點(diǎn)的x坐標(biāo)值,另一個(gè)數(shù)組指定點(diǎn)的y坐標(biāo)值,numPoints指定要畫的折線的點(diǎn)數(shù)。矩形1.2.3Graphics類中有很多繪制矩形的方法,典型的有下面三種:實(shí)體的(solid)圓角的(rounded)三維的(3D)1.2.4下面列出的是繪制和填充矩形的方法:drawRect(intxintyintwinth)drawRoundRect(intxintyintwinthintarcWidthintarcHeight)d

5、raw3DRect(intxintyintwinthbooleanraise)fillRect(intxintyintwinth)fillRoundRect(intxintyintwinthintarcWidthintarcHeight)fill3DRect(intxintyintwinthbooleanraise)xywh分別是橫坐標(biāo)、縱坐標(biāo)、寬度和高度。坐標(biāo)系以左上角為坐標(biāo)原點(diǎn)。3D矩形中的booleanraise參數(shù)指明矩形的3D

6、效果是凸的還是凹的:如果raise為true,表明是凸的,否則表明是凹的。圓角矩形中的參數(shù)intarcWidthintarcHeight則表明圓角的水平直徑和垂直直徑。我們用程序來說明。1.2.5弧繪制弧的方法是:drawArc(intxintyintwinthintstartAngleintendAngle)x和y分別表示該弧的外切矩形的左上角坐標(biāo);w和h分別表示該弧的長(zhǎng)度和高度,而startAngle和endAngle則表示起始角度

7、和終止角度。填充弧的方法是:fillArc(intxintyintwinthintstartAngleintendAngle)弧是唯一的一種非封閉的,但可以填充的圖形。填充弧的范圍從弧的中心與起始點(diǎn)的連線開始,到中心與結(jié)束點(diǎn)的連線為止。我們看看程序示例。1.2.6橢圓繪制圓:drawOval(intxintyintwinth)fillOval(intxintyintwinth)參數(shù)的意義與繪制弧的相同:x和y分別表示該橢圓的外切矩形的左

8、上角坐標(biāo);w和h分別表示該橢圓的長(zhǎng)度和高度。2ImageImage類2.1概述如果要畫出Gif格式或者JPEG格式的復(fù)雜圖象,需要用到Image類和Graphics.drawImage()方法。圖象生產(chǎn)者和圖象消費(fèi)者,圖象觀察者圖象生產(chǎn)者產(chǎn)生圖象的位,常見的圖象生產(chǎn)者是圖象源;圖象消費(fèi)者是接受圖像的位,常見的圖象消費(fèi)者是象素抓取器;圖象觀察者監(jiān)視圖像生產(chǎn)者的圖象生產(chǎn)過程。我們可能難以理解這些話,我們需要記住的是:Graphics的dra

9、wImage()方法的參數(shù)需要一個(gè)圖象觀察者,而所有構(gòu)件都繼承了java.ponent,而Component實(shí)現(xiàn)了圖象觀察者接口,所以所有構(gòu)件都是圖象觀察者,都可以作為drawImage()的參數(shù)。2.2加載和顯示圖象getCodeBase()是返回當(dāng)前運(yùn)行的代碼所在的目錄;顯示出高度和寬度都為-1,這是因?yàn)閳D象加載尚未完成;一旦圖象加載完成,就不會(huì)有這個(gè)問題。我們來看看程序的運(yùn)行結(jié)果。2.3應(yīng)用程序中加載和顯示圖象應(yīng)用程序如果要框架,

10、就要繼承Frame,然而Frame并沒有g(shù)etImage()方法,所以應(yīng)用程序加載圖象要用到不同的方法。方法就是使用Toolkit類。因?yàn)門oolkit類有g(shù)etImage()方法。我們來看一個(gè)例程。2.4無閃動(dòng)的圖象加載引起閃動(dòng)的原因,是applet的update()方法。repaint()方法將會(huì)調(diào)用update()方法,而方法先清除paint()方法以前所畫的內(nèi)容,然后調(diào)用paint()方法。就是這些清除和重畫過程導(dǎo)致畫面閃動(dòng)。清

溫馨提示

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

評(píng)論

0/150

提交評(píng)論