Java大學(xué)實(shí)用教程 第13章 Java Applet_第1頁
Java大學(xué)實(shí)用教程 第13章 Java Applet_第2頁
Java大學(xué)實(shí)用教程 第13章 Java Applet_第3頁
Java大學(xué)實(shí)用教程 第13章 Java Applet_第4頁
Java大學(xué)實(shí)用教程 第13章 Java Applet_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第第13章章 Java Applet 本章導(dǎo)讀nJava Applet的運(yùn)行原理n在網(wǎng)頁向Java Applet傳值n在Java Applet中播放聲音n在Java Applet中使用組件n在Java Applet中繪制圖形圖像n在Java Applet中播放幻燈片nJava Applet 網(wǎng)絡(luò)聊天室113.1 Java Applet的運(yùn)行原理 _ 1 Java Applet概述 1Java Applet概述概述 一個(gè)Java Applet也是由若干個(gè)類組成的,一個(gè)Java Applet不再需要main方法,但必須有且只有一個(gè)類擴(kuò)展了Applet類,即它是Applet類的子類,我們把這個(gè)類稱為

2、這個(gè)Java Applet的主類。 Java Applet的主類必須是public的。Applet類是java.applet包提供的類,Applet類是Container類的一個(gè)間接子類,因此Java Applet的實(shí)例是一個(gè)容器。 Java Applet屬于Java嵌入式開發(fā)的一種,嵌入式程序的主類的實(shí)例化由嵌入該程序的環(huán)境平臺(tái)中JVM負(fù)責(zé)。這樣一來,我們必須向這樣的平臺(tái)提供相應(yīng)的配置文件,嵌入該程序的環(huán)境平臺(tái)使用配置文件通知平臺(tái)中的JVM建立主類的對象,并產(chǎn)生相應(yīng)的一些行為。 Applet類有5個(gè)常用的方法,它們是init (),start(),stop(),destroy()和和pain

3、t(Graphics g)。213.1 Java Applet的運(yùn)行原理 _ 2 運(yùn)行原理 2 運(yùn)行原理運(yùn)行原理 例例13-1說明Java Applet運(yùn)行原理,效果如圖13.1所示。 3 (1) 網(wǎng)頁的編寫 編寫一個(gè)超文本文件,告訴瀏覽器來運(yùn)行這個(gè)Java Applet。 假設(shè)Applet主類的名字是Example13_1,下面是一個(gè)簡單的html文件“l(fā)ike.html”。like.html文件告訴瀏覽器運(yùn)行主類是Example13_1的Java Applet。 網(wǎng)頁的最終目的是讓其他客戶通過網(wǎng)絡(luò)來訪問,下載到客戶端執(zhí)行。可以用Web發(fā)布管理器,比如,IIS或Tomcat,將含有Java

4、Applet網(wǎng)頁所在的目錄設(shè)成Web服務(wù)目錄。例如,我們將like.html所在的文件夾D:ch13設(shè)為Web服務(wù)目錄,虛擬目錄名稱是hello,那么其他用戶就可以在其瀏覽器的地址欄中鍵入該服務(wù)器的IP地址、虛 擬 目 錄 名 稱 訪 問 含 有 J a v a A p p l e t 的 網(wǎng) 頁 , 如00/hello/like.html00/hello/like.html。 Java Applet的字節(jié)碼文件會(huì)下載到客戶端,由客戶端的瀏覽器負(fù)責(zé)運(yùn)行。超文本文件like.html可以被看成是運(yùn)行環(huán)境執(zhí)行Java Applet

5、所要求的配置文件。 4 (2) Java Applet的生命周期 一個(gè)Java Applet的執(zhí)行過程稱為這個(gè)Java Applet的生命周期。一個(gè)Java Applet的生命周期會(huì)涉及如下方法的調(diào)用執(zhí)行init()init(),start()start(),stop()stop(),destroy()destroy()和和paint(Graphics g)paint(Graphics g)。 當(dāng)瀏覽器執(zhí)行l(wèi)ike.html,發(fā)現(xiàn)有applet標(biāo)記時(shí),瀏覽器內(nèi)置的JVM將創(chuàng)建主類Example13_1的一個(gè)對象,它的大小由超文本文件like.html中的width和height來確定。由于Ap

6、plet類也是Container的間接子類,因此主類的實(shí)例也是一個(gè)容器,容器有相應(yīng)的坐標(biāo)系統(tǒng),單位是像素,原點(diǎn)是容器的左上角。該容器的默認(rèn)布局是FlowLayout布局,被自動(dòng)添加到瀏覽器的桌面上。瀏覽器內(nèi)置的JVM創(chuàng)建了主類Boy對象后,立刻通知這個(gè)對象調(diào)用init()方法完成必要的初始化工作。該對象接著自動(dòng)調(diào)用start()方法。當(dāng)瀏覽器離開Java Applet所在的頁面轉(zhuǎn)到其他頁面時(shí),主類創(chuàng)建的對象將調(diào)用stop()方法。當(dāng)瀏覽器結(jié)束瀏覽時(shí),主類創(chuàng)建的對象自動(dòng)執(zhí)行destroy()方法,結(jié)束Java Applet 的生命。 paint(Graphics g)方法可以使一個(gè)Java Ap

7、plet在容器上顯示某些信息,如文字、色彩、背景或圖像等。瀏覽器的Java運(yùn)行環(huán)境產(chǎn)生一個(gè)Graphics類的實(shí)例,并傳遞給方法paint中的參數(shù)g。513.1 Java Applet的運(yùn)行原理 _ 3關(guān)于repaint()方法和update(Graphics g) 3關(guān)于關(guān)于repaint()方法方法update(Graphics g) repaint()方法和update(Graphics g)是Component類中的一個(gè)方法。當(dāng)調(diào)用repaint()方法時(shí),程序首先清除paint()方法以前所畫的內(nèi)容,然后再調(diào)用paint()方法。 實(shí)際上,當(dāng)我們調(diào)用repaint()方法時(shí),程序自動(dòng)

8、去調(diào)用update(Graphics g)方法,瀏覽器的Java運(yùn)行環(huán)境產(chǎn)生一個(gè)Graphics類的實(shí)例,傳遞給方法update(Graphics g)中的參數(shù)g。這個(gè)方法的功能是清除paint()方法以前所畫的內(nèi)容,然后再調(diào)用paint()方法。因此,我們可以在子類中重寫update()方法(即隱藏父類的方法),根據(jù)需要來清除哪些部分或保留哪些部分。 例13-2在paint()方法中使用了repaint()方法,因此每當(dāng)Java Applet調(diào)用paint()方法時(shí),就會(huì)調(diào)用update()方法。程序重寫了update()方法,清除paint()方法所繪制的部分內(nèi)容,并緊接著再調(diào)用paint

9、()方法。613.2 Java Applet中播放聲音 用Java可以編寫播放AU、AIFF、WAV、MIDI、RM格式的音頻。AU格式是Java早期惟一支持的音頻格式。要在Java Applet中播放聲音,可以使用Applet類的一個(gè)靜態(tài)的方法(類方法):newAudioClip(URL url,String name)newAudioClip(URL url,String name)或Applet類的實(shí)例方法getAudioClip(Url url,String name)getAudioClip(Url url,String name)根據(jù)參數(shù)url提供的地址和該處的聲音文件name,可

10、以獲得一個(gè)用于播放的音頻對象(AudioClip類型對象)。這個(gè)音頻對象可以使用下列方法來處理聲音文件: play() 播放聲音文件name。 loop() 循環(huán)播放name。 stop() 停止播放name。 例例13-3 播放聲音 。713.3 在網(wǎng)頁向Java Applet傳值 我們可以在超文本中使用若干個(gè)標(biāo)志把值傳遞到Java Applet中,這樣就實(shí)現(xiàn)了動(dòng)態(tài)地向程序傳遞信息,不必重新編譯程序,便于程序的維護(hù)和使用。 例例13-4 在網(wǎng)頁向Java Applet傳值 。813.4 在Java Applet中使用組件 Applet類是容器的間接子類,因此我們可以在這個(gè)容器中添加組件,處理

11、組件事件,完成一些工作。如果沒有更新瀏覽器內(nèi)置的JVM,Java Applet中只能使用JDK 1.1版本公布的java.awt包中的組件,如Button,TextField,TextArea等。 例例13-5中中,我們把Java Applet的布局設(shè)置為BorderLayout布局,效果如圖13.2所示。Java Applet的中心和北面又分別嵌套了面板(Panel創(chuàng)建的對象)centerPanel和northPanel。centerPanel面板的布局是CardLayout布局、northPanel的布局是默認(rèn)的FlowLayout布局。在northPanel中添加了兩個(gè)按鈕,center

12、Panel面板中又嵌套了兩個(gè)不同的容器,作為centerPanel 中的“卡片”,單擊相應(yīng)的按鈕時(shí),centerPanel面板將顯示相應(yīng)的“卡片”,兩張卡片分別負(fù)責(zé)計(jì)算圓和三角形的面積。 例例13-6(效果如圖13.3所示)在JApplet的內(nèi)容面板的中心添加了JTree組件,該組件用來顯示日歷。網(wǎng)頁將年份傳值給Japplet,在內(nèi)容面板的北面添加了兩個(gè)按鈕,兩個(gè)按鈕分別負(fù)責(zé)向前和向后翻動(dòng)月份;在內(nèi)容面板的南面添加了1個(gè)標(biāo)簽,用來顯示月份和年份。該例子中用到了Calendar類的許多屬性和功能。9例13-5,13-6 運(yùn)行效果 圖13.2,13.31013.5 在Java Applet中繪制圖

13、形 _1 1繪制文本繪制文本drawstring() 方法可以在屏幕上顯示串對象。drawString(String s,int x,int y)方法從參數(shù)x、y指定的坐標(biāo)位置處,從左向右繪制參數(shù)s指定的字符串。drawChars(char data,int offset, int length, int x, int y)方法繪制data數(shù)組中的部分字符,length指定數(shù)組中要連續(xù)繪制的字符的個(gè)數(shù),offset是首字符在數(shù)組中的位置。2繪制直線繪制直線drawLine(int x1,int y1,int x2,int y2)方法繪制從起點(diǎn)(x1,y1)到終點(diǎn)(x2,y2)的直線段。3繪制矩

14、形繪制矩形drawRect (int x,int y,int w,int h)方法繪制矩形,fillRect (int x,int y,int w,int h)方法填充矩形。矩形的左上角的坐標(biāo)由參數(shù)x和y指定,矩形的寬和高由參數(shù)w和h指定。4繪制圓角矩形繪制圓角矩形drawRoundRect(int x,int y,int w,int h,int arcW,int arcH)方法繪制圓角矩形,fillRoundRect(int x,int y,int w,int h,int arcW,int arcH)方法填充圓角矩形。參數(shù)arcW和arcH指定圓角的尺寸,見圖圖13.4中的中的4個(gè)黑角部分。

15、11圖13.41213.5 在Java Applet中繪制圖形_2 6繪制圓弧繪制圓弧 圓弧就是某個(gè)橢圓的一部分。drawArc(int x,int y,int width,int height,int starAngle, int arcAngle)方法繪制圓弧。fillArc(int x,int y,int width,int height,int starAngle,int arcAngle)方法填充圓弧。 x、y、width、heigth指定橢圓的位置和大小,參數(shù)starAngle和 arcAngle的單位都是“度”。而起始角度的0是3點(diǎn)鐘的方位。參數(shù)starAngle和arcAngl

16、e表示從starAngle的角度開始逆時(shí)針或順時(shí)針方向畫arcAngle度的弧,當(dāng)arcAngle是正值時(shí)為逆時(shí)針,否則為順時(shí)針。starAngle的值可以是負(fù)值,如-90是6點(diǎn)鐘的方位。7繪制多邊形繪制多邊形drawPolygon(int xPoints, int yPoints, int nPoints)方法繪制多邊形。fillPolygon(int xPoints, int yPoints, int nPoints)方法填充多邊形。 參數(shù)數(shù)組xPoint和yPoint組成多邊形的頂點(diǎn)坐標(biāo),nPoints是頂點(diǎn)的數(shù)目。 注:注:Java自動(dòng)閉合多邊形,程序總是把最后的頂點(diǎn)和第一個(gè)頂點(diǎn)連接起

17、來。 例例13-7繪制了一些基本圖形,效果如圖如圖13.5所所示。13例例13-7機(jī)制機(jī)制運(yùn)行效果圖13.51413.6 在Java Applet中繪制圖像 圖像是矩形內(nèi)的一組像素。Java支持主要兩種圖像格式GIF(Graphics Interchang Format)和JPEG(Join Phtographic Expert Group)。public Image getImage(URL url,String name) Applet類提供的方法,返回可以被顯示在屏幕上的Image對象的引用。 public URL getCodeBase()從Applet繼承的方。該方法返回一個(gè)URL對

18、象。 public URL getDocumentBase()該方法返回一個(gè)URL對象, public boolean drawImage(Image img,int x,int y,ImageObserver observer) Graphics類提供。如public void paint(Graphics g) g.drawImage(img,0,3,this); public boolean drawImage(Image img,int x,int y,int width, int height,ImageObserver observer)。該方法在矩形內(nèi)繪制加載的圖像。如果不想讓圖像有比例上的變化,在繪制之前可以通過Image類提供的方法獲取被加載的圖像的寬和高,如img.getHeight(this); img.getWidth(t

溫馨提示

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

最新文檔

評論

0/150

提交評論