Java面向?qū)ο蟪绦蛟O(shè)計(jì)(第二版)課件第12章-applet 程序設(shè)計(jì)_第1頁(yè)
Java面向?qū)ο蟪绦蛟O(shè)計(jì)(第二版)課件第12章-applet 程序設(shè)計(jì)_第2頁(yè)
Java面向?qū)ο蟪绦蛟O(shè)計(jì)(第二版)課件第12章-applet 程序設(shè)計(jì)_第3頁(yè)
Java面向?qū)ο蟪绦蛟O(shè)計(jì)(第二版)課件第12章-applet 程序設(shè)計(jì)_第4頁(yè)
Java面向?qū)ο蟪绦蛟O(shè)計(jì)(第二版)課件第12章-applet 程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第12章applet程序設(shè)計(jì)教學(xué)目標(biāo)了解applet的工作原理掌握applet程序中主要方法的使用掌握創(chuàng)建和運(yùn)行applet程序的方法掌握Applet標(biāo)記的使用掌握J(rèn)avaapplet與Javaapplication的區(qū)別了解applet在多媒體中的應(yīng)用引例例12.1當(dāng)首次啟動(dòng)JavaApplet小程序時(shí),顯示面板上顯示字符串"Welcome!",如圖12-1(a)所示;當(dāng)該Applet窗口被其它窗口遮擋后再次顯示時(shí),顯示面板上顯示字符串"Welcomeback!",如圖12-1(b)所示。請(qǐng)看下面的源代碼。引例(續(xù))引例(續(xù))在命令控制臺(tái)窗口中,將當(dāng)前目錄切換到Jpro12_1.html文件所在的目錄,然后在命令行中輸入:appletviewerJpro12_1.html,如圖所示。引例(續(xù))運(yùn)行結(jié)果:

applet的工作機(jī)制www服務(wù)器www服務(wù)器www瀏覽器HTML文件…………..applet嵌入標(biāo)記applet名…………..…………..…………..…………..下載HTML文件請(qǐng)求applet字節(jié)碼下載applet字節(jié)碼解釋執(zhí)行applet字節(jié)碼請(qǐng)求HTML文件applet的工作機(jī)制(續(xù))

編譯好的字節(jié)碼文件(.class)保存在特定的WWW服務(wù)器上,而另外一個(gè)嵌入了該字節(jié)碼文件名的HTML文件保存在同一個(gè)或另一個(gè)服務(wù)器上。當(dāng)某一個(gè)瀏覽器向服務(wù)器請(qǐng)求下載嵌入了applet的文件時(shí),該文件從WWW服務(wù)器上下載到客戶(hù)端,由WWW瀏覽器解釋HTML中的各種標(biāo)記。當(dāng)瀏覽器遇到嵌入applet標(biāo)記的HTML文件時(shí),它會(huì)根據(jù)applet的名字和位置自動(dòng)將字節(jié)碼從服務(wù)器上下載到本地,并利用瀏覽器本身的Java解釋器執(zhí)行該字節(jié)碼文件。applet的層次結(jié)構(gòu)java.lang.Objectjava.awt.Componetjava.awt.Containerjava.awt.Paneljava.applet.Appletjava.swing.JAppletapplet的生命周期初始化init()啟動(dòng)start()終止stop()消亡destroy()退出瀏覽器下載applet字節(jié)碼并實(shí)例化啟動(dòng)applet用戶(hù)離開(kāi)applet所在頁(yè)面刷新或返回applet所在頁(yè)面applet的生命周期(續(xù))applet生命周期是指applet從開(kāi)始載入、運(yùn)行到停止、消亡的整個(gè)過(guò)程。1.publicvoidinit()初始化該方法用于applet的初始化。當(dāng)applet第一次加載時(shí),該方法會(huì)被自動(dòng)調(diào)用。在這個(gè)方法中,可以做一些必要的初始化工作,這些內(nèi)容包括創(chuàng)建和初始化程序運(yùn)行所需要的對(duì)象實(shí)例,把圖形或字體載入內(nèi)存,處理PARAM參數(shù)等。applet的生命周期(續(xù))2.publicvoidstart()該方法是用來(lái)啟動(dòng)瀏覽器運(yùn)行applet的主線程。調(diào)用init()方法將applet的初始化工作完成之后,start()方法會(huì)自動(dòng)調(diào)用;當(dāng)用戶(hù)刷新包含applet的頁(yè)面或者從其他頁(yè)面返回包含applet的頁(yè)面時(shí),start()方法會(huì)被自動(dòng)調(diào)用。start()方法可以被多次調(diào)用,這與init()方法是有區(qū)別的。基于這樣的原因,可以把只調(diào)用一次的代碼放在init()方法中,而不能放在start()方法中。3.publicvoidstop()該方法在用戶(hù)離開(kāi)包含applet的頁(yè)面時(shí)會(huì)被自動(dòng)調(diào)用。與start()方法相同,stop()方法也可以被多次調(diào)用。當(dāng)stop()方法被調(diào)用時(shí),將停止一些耗費(fèi)系統(tǒng)資源的活動(dòng),如播放動(dòng)畫(huà)等。如果在applet中沒(méi)有動(dòng)畫(huà)或者音樂(lè)文件的播放,可以不使用這個(gè)方法。applet的生命周期(續(xù))4.publicvoiddestroy()當(dāng)用戶(hù)正常關(guān)閉瀏覽器時(shí),瀏覽器會(huì)調(diào)用destroy()方法。該方法用于回收系統(tǒng)資源,如回收?qǐng)D形用戶(hù)界面的系統(tǒng)資源、關(guān)閉連接等。至于applet實(shí)例本身,會(huì)由瀏覽器來(lái)負(fù)責(zé)從內(nèi)存中清除,不需要在destroy()方法中清除。5.publicvoidpaint(Graphicsg)該方法用于在Applet的界面上顯示文字、圖形和其他界面元素。方法中帶有一個(gè)Graphics類(lèi)參數(shù),要將java.awt.Graphics包裝入,這個(gè)Graphics類(lèi)參數(shù)不需要程序員擔(dān)心,瀏覽器會(huì)自動(dòng)創(chuàng)建并將其傳遞給paint()方法。該方法也是瀏覽器可自動(dòng)調(diào)用Applet類(lèi)的方法,導(dǎo)致瀏覽器調(diào)用paint()方法的事件主要有如下三種:①Applet被啟動(dòng)之后,將自動(dòng)調(diào)用paint()來(lái)重新描繪自己的界面;②Applet所在的瀏覽器窗口改變時(shí),例如窗口被放大、縮小、移動(dòng)或被系統(tǒng)的其他部分遮蓋、覆蓋后又重新顯示在屏幕的最前方等。這些情況都要求Applet重畫(huà)它的界面,此時(shí)瀏覽器就自動(dòng)調(diào)用paint()方法來(lái)完成此項(xiàng)工作。③Applet的其他相關(guān)方法被調(diào)用時(shí),系統(tǒng)也會(huì)相應(yīng)的調(diào)用paint()方法。例如,當(dāng)repaint()方法被調(diào)用時(shí),系統(tǒng)就首先調(diào)用update()方法將Applet實(shí)例所占用的屏幕空間清空,然后調(diào)用paint()方法重新繪制Applet的界面。applet的程序框架applet的程序框架(續(xù))如果在創(chuàng)建applet時(shí),繼承的是Applet類(lèi),主類(lèi)的結(jié)構(gòu)不發(fā)生改變,但在Applet中加入組件或繪制圖形等方面有所變化。繼承Applet類(lèi)的小應(yīng)用程序需要引用的包和類(lèi)聲明語(yǔ)句如下:importjava.applet.*;importjava.awt.*;publicclass子類(lèi)名extendsApplet{…..}總之a(chǎn)pplet的創(chuàng)建有兩種方式。一種是使用JApplet類(lèi)來(lái)實(shí)現(xiàn),另一種是使用Applet類(lèi)來(lái)實(shí)現(xiàn)的。隨著Swing組件的廣泛性,建議大家使用第一種方式。applet與HTML文件的配合1.HTML中的Applet標(biāo)記<appletcode=appletFile.classwidth=pixelsheight=pixels[codebase=codebaseURL][alt=altrtnateText][name=appletInstanceName][align=alignment][vspace=pixels][hspace=pixels]>[<paramname=appletAttribute1value=value>]{<paramname=appletAttribute2value=value>]...</applet>applet與HTML文件的配合(續(xù))2.向applet傳遞參數(shù)

Javaapplication通過(guò)命令行接受用戶(hù)參數(shù),在applet中,該任務(wù)是通過(guò)在HTML文件中使用param標(biāo)記中name和value屬性向applet傳遞參數(shù)。在applet的定義中,使用方法getParameter()來(lái)讀取name參數(shù)提供的value。由于在HTML文件和applet之間傳遞的參數(shù)是以字符串形式表示的,因此在使用某些特殊類(lèi)型的參數(shù)前應(yīng)該將其強(qiáng)制轉(zhuǎn)化成特定的數(shù)據(jù)類(lèi)型。applet的執(zhí)行Javaapplet程序執(zhí)行方式有兩種方式:1.在Web瀏覽器中執(zhí)行applet必須要嵌入到HTML文檔中,就可以在支持JavaApplet的瀏覽器中直接查看applet的結(jié)果,即只需雙擊嵌入了Applet的HTML頁(yè)面即可運(yùn)行。這里的JavaApplet瀏覽器是指可以運(yùn)行包含Applet的HTML文件的一切軟件系統(tǒng)。MicrosoftInternetExplorer、NetscapeNavigator等支持Java的web瀏覽器都是Applet瀏覽器,JavaApplet都可以在其中運(yùn)行。2.使用appletviewer命令執(zhí)行Sun公司的JDK中附帶有一個(gè)專(zhuān)為查看applet而設(shè)計(jì)的工具appletviewer。它使得用戶(hù)無(wú)須使用web瀏覽器就可直接運(yùn)行applet。appletviewer能從HTML文件中抽取出”<APPLET>”標(biāo)簽,然后僅僅運(yùn)行和這個(gè)applet相關(guān)的信息,其他內(nèi)容將不會(huì)被顯示。appletviewer通過(guò)命令行方式運(yùn)行,運(yùn)行時(shí)會(huì)產(chǎn)生一個(gè)applet窗口,用于顯示執(zhí)行結(jié)果。另外,要制定一個(gè)嵌入applet字節(jié)碼的HTML文件名或URL,使得applet可以在指定區(qū)域顯示和執(zhí)行。具體命令格式如下:

appletviewer<HTMLfile或URL>applet與application1.Javaapplication程序是獨(dú)立完整的程序。Javaapplet程序是在WWW瀏覽器環(huán)境下運(yùn)行,即不是完整的獨(dú)立運(yùn)行程序。2.運(yùn)行方式上,Javaapplication程序通過(guò)在命令行調(diào)用獨(dú)立的解釋器軟件即可運(yùn)行。運(yùn)行Javaapplet程序的解釋器不是獨(dú)立的軟件,而是嵌在WWW瀏覽器中作為瀏覽器軟件的一部分。運(yùn)行Applet程序時(shí),必須把它嵌在HTML中并激活瀏覽器中的解釋器,或者調(diào)用一些能夠模擬瀏覽器環(huán)境的軟件,如AppletViewer。applet與application(續(xù))3.程序結(jié)構(gòu)上,Javaapplication程序的主類(lèi)必須有一個(gè)main()方法,這是Javaapplication程序執(zhí)行的入口點(diǎn)。Javaapplet程序中不一定包含main()方法,但是Javaapplet程序的主類(lèi)必須是類(lèi)庫(kù)中已定義好的類(lèi)Applet或JApplet的子類(lèi)。由于JavaApplet不需要有main()方法作為程序的入口點(diǎn),JavaApplet更多地是體現(xiàn)狀態(tài)和狀態(tài)之間的切換,而不是固定的順序化的執(zhí)行過(guò)程。4.程序編寫(xiě)組成上,Javaapplet程序可以直接利用瀏覽器或者appletviewer運(yùn)行圖形用戶(hù)界面,而Javaapplication程序必須另外書(shū)寫(xiě)專(zhuān)門(mén)代碼來(lái)創(chuàng)建自己的圖形界面。因?yàn)閍pplet是一種可在瀏覽器中執(zhí)行的小型Java程序。而大部分執(zhí)行applet所需的圖形支持環(huán)境已內(nèi)建或以嵌入的方式放在瀏覽器中。Applet是繼承Panel的。即Applet是一種Panel。所以編寫(xiě)applet時(shí),并需要去作一個(gè)Frame來(lái)展示圖形的部分。瀏覽器自然會(huì)產(chǎn)生一個(gè)Panel作為圖形接口的容器。Javaapplication若要圖形接口,就須編寫(xiě)有Frame或JFrame的實(shí)例作為外面的容器。applet與多媒體技術(shù)1.applet中加載圖片的方法

Java特別提供了java.awt.Image類(lèi)來(lái)管理與圖像文件有關(guān)的信息,因此執(zhí)行與圖像文件有關(guān)的操作時(shí)需使用import引用這個(gè)類(lèi)。Applet類(lèi)中提供了getImage()方法將準(zhǔn)備好的圖像文件裝載到applet中,但必須首先指明圖像文件所存儲(chǔ)的位置。GetImage()方法的調(diào)用格式有以下兩種,這兩種調(diào)用格式的返回值都是Image對(duì)象。

ImagegetImage(URLurl)ImagegetImage(URLurl,Stringname)類(lèi)URL代表一個(gè)統(tǒng)一資源定位符,它是指向互聯(lián)網(wǎng)資源的指針。資源可以是簡(jiǎn)單的文件或目錄,也可以是對(duì)更為復(fù)雜的對(duì)象的引用,例如對(duì)數(shù)據(jù)庫(kù)或搜索引擎的查詢(xún)。

applet與多媒體技術(shù)(續(xù))2.applet中加載聲音的方法Java編程語(yǔ)言也具有播放音頻文件的方法,這些方法在java.applet.AudioClip類(lèi)中。利用Java2中,可以播放WAV、AIFF、MIDI、AU和RMT格式的文件。播放音頻文件的最簡(jiǎn)單的方式是通過(guò)applet的play()方法,有兩個(gè)形式,

play(URLsoundDirectory,StringsoundFile);play(URLsoundURL);applet與多媒體技術(shù)(續(xù))3.動(dòng)畫(huà)的生成和播放Java語(yǔ)言中的動(dòng)畫(huà)制作步驟是:第一步,在屏幕上顯示動(dòng)畫(huà)的第一幀(也就是第一幅畫(huà)面);第二步,每隔很短的時(shí)間再顯示另外一幀,如此往復(fù)。具體的實(shí)現(xiàn)過(guò)程是系統(tǒng)去調(diào)用repaint()方法來(lái)完成重畫(huà)任務(wù),而repaint()方法又去直接調(diào)用update()方法。update()方法目的是先清除整個(gè)applet區(qū)域里的內(nèi)容,然后再調(diào)用paint()方法,從而完成了一次重畫(huà)工作。這里涉及有關(guān)多線程的概念和工作原理,將在后面章節(jié)介紹。applet多媒體應(yīng)用實(shí)例程序分析本例是涉及圖像顯示、聲音以及動(dòng)畫(huà)播放效果的applet程序。在圖片顯示中利用getImage(getCodeBase(),"ittoolbox.gif")來(lái)加載圖片ittoolbox.gif,而getCodeBase()是用來(lái)取得a

溫馨提示

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

評(píng)論

0/150

提交評(píng)論