版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第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)所示。請看下面的源代碼。引例(續(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文件請求applet字節(jié)碼下載applet字節(jié)碼解釋執(zhí)行applet字節(jié)碼請求HTML文件applet的工作機(jī)制(續(xù))
編譯好的字節(jié)碼文件(.class)保存在特定的WWW服務(wù)器上,而另外一個(gè)嵌入了該字節(jié)碼文件名的HTML文件保存在同一個(gè)或另一個(gè)服務(wù)器上。當(dāng)某一個(gè)瀏覽器向服務(wù)器請求下載嵌入了applet的文件時(shí),該文件從WWW服務(wù)器上下載到客戶端,由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用戶離開applet所在頁面刷新或返回applet所在頁面applet的生命周期(續(xù))applet生命周期是指applet從開始載入、運(yùn)行到停止、消亡的整個(gè)過程。1.publicvoidinit()初始化該方法用于applet的初始化。當(dāng)applet第一次加載時(shí),該方法會(huì)被自動(dòng)調(diào)用。在這個(gè)方法中,可以做一些必要的初始化工作,這些內(nèi)容包括創(chuàng)建和初始化程序運(yùn)行所需要的對象實(shí)例,把圖形或字體載入內(nèi)存,處理PARAM參數(shù)等。applet的生命周期(續(xù))2.publicvoidstart()該方法是用來啟動(dòng)瀏覽器運(yùn)行applet的主線程。調(diào)用init()方法將applet的初始化工作完成之后,start()方法會(huì)自動(dòng)調(diào)用;當(dāng)用戶刷新包含applet的頁面或者從其他頁面返回包含applet的頁面時(shí),start()方法會(huì)被自動(dòng)調(diào)用。start()方法可以被多次調(diào)用,這與init()方法是有區(qū)別的?;谶@樣的原因,可以把只調(diào)用一次的代碼放在init()方法中,而不能放在start()方法中。3.publicvoidstop()該方法在用戶離開包含applet的頁面時(shí)會(huì)被自動(dòng)調(diào)用。與start()方法相同,stop()方法也可以被多次調(diào)用。當(dāng)stop()方法被調(diào)用時(shí),將停止一些耗費(fèi)系統(tǒng)資源的活動(dòng),如播放動(dòng)畫等。如果在applet中沒有動(dòng)畫或者音樂文件的播放,可以不使用這個(gè)方法。applet的生命周期(續(xù))4.publicvoiddestroy()當(dāng)用戶正常關(guān)閉瀏覽器時(shí),瀏覽器會(huì)調(diào)用destroy()方法。該方法用于回收系統(tǒng)資源,如回收圖形用戶界面的系統(tǒng)資源、關(guān)閉連接等。至于applet實(shí)例本身,會(huì)由瀏覽器來負(fù)責(zé)從內(nèi)存中清除,不需要在destroy()方法中清除。5.publicvoidpaint(Graphicsg)該方法用于在Applet的界面上顯示文字、圖形和其他界面元素。方法中帶有一個(gè)Graphics類參數(shù),要將java.awt.Graphics包裝入,這個(gè)Graphics類參數(shù)不需要程序員擔(dān)心,瀏覽器會(huì)自動(dòng)創(chuàng)建并將其傳遞給paint()方法。該方法也是瀏覽器可自動(dòng)調(diào)用Applet類的方法,導(dǎo)致瀏覽器調(diào)用paint()方法的事件主要有如下三種:①Applet被啟動(dòng)之后,將自動(dòng)調(diào)用paint()來重新描繪自己的界面;②Applet所在的瀏覽器窗口改變時(shí),例如窗口被放大、縮小、移動(dòng)或被系統(tǒng)的其他部分遮蓋、覆蓋后又重新顯示在屏幕的最前方等。這些情況都要求Applet重畫它的界面,此時(shí)瀏覽器就自動(dòng)調(diào)用paint()方法來完成此項(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類,主類的結(jié)構(gòu)不發(fā)生改變,但在Applet中加入組件或繪制圖形等方面有所變化。繼承Applet類的小應(yīng)用程序需要引用的包和類聲明語句如下:importjava.applet.*;importjava.awt.*;publicclass子類名extendsApplet{…..}總之a(chǎn)pplet的創(chuàng)建有兩種方式。一種是使用JApplet類來實(shí)現(xiàn),另一種是使用Applet類來實(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通過命令行接受用戶參數(shù),在applet中,該任務(wù)是通過在HTML文件中使用param標(biāo)記中name和value屬性向applet傳遞參數(shù)。在applet的定義中,使用方法getParameter()來讀取name參數(shù)提供的value。由于在HTML文件和applet之間傳遞的參數(shù)是以字符串形式表示的,因此在使用某些特殊類型的參數(shù)前應(yīng)該將其強(qiáng)制轉(zhuǎn)化成特定的數(shù)據(jù)類型。applet的執(zhí)行Javaapplet程序執(zhí)行方式有兩種方式:1.在Web瀏覽器中執(zhí)行applet必須要嵌入到HTML文檔中,就可以在支持JavaApplet的瀏覽器中直接查看applet的結(jié)果,即只需雙擊嵌入了Applet的HTML頁面即可運(yùn)行。這里的JavaApplet瀏覽器是指可以運(yùn)行包含Applet的HTML文件的一切軟件系統(tǒng)。MicrosoftInternetExplorer、NetscapeNavigator等支持Java的web瀏覽器都是Applet瀏覽器,JavaApplet都可以在其中運(yùn)行。2.使用appletviewer命令執(zhí)行Sun公司的JDK中附帶有一個(gè)專為查看applet而設(shè)計(jì)的工具appletviewer。它使得用戶無須使用web瀏覽器就可直接運(yùn)行applet。appletviewer能從HTML文件中抽取出”<APPLET>”標(biāo)簽,然后僅僅運(yùn)行和這個(gè)applet相關(guān)的信息,其他內(nèi)容將不會(huì)被顯示。appletviewer通過命令行方式運(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程序通過在命令行調(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程序的主類必須有一個(gè)main()方法,這是Javaapplication程序執(zhí)行的入口點(diǎn)。Javaapplet程序中不一定包含main()方法,但是Javaapplet程序的主類必須是類庫中已定義好的類Applet或JApplet的子類。由于JavaApplet不需要有main()方法作為程序的入口點(diǎn),JavaApplet更多地是體現(xiàn)狀態(tài)和狀態(tài)之間的切換,而不是固定的順序化的執(zhí)行過程。4.程序編寫組成上,Javaapplet程序可以直接利用瀏覽器或者appletviewer運(yùn)行圖形用戶界面,而Javaapplication程序必須另外書寫專門代碼來創(chuàng)建自己的圖形界面。因?yàn)閍pplet是一種可在瀏覽器中執(zhí)行的小型Java程序。而大部分執(zhí)行applet所需的圖形支持環(huán)境已內(nèi)建或以嵌入的方式放在瀏覽器中。Applet是繼承Panel的。即Applet是一種Panel。所以編寫applet時(shí),并需要去作一個(gè)Frame來展示圖形的部分。瀏覽器自然會(huì)產(chǎn)生一個(gè)Panel作為圖形接口的容器。Javaapplication若要圖形接口,就須編寫有Frame或JFrame的實(shí)例作為外面的容器。applet與多媒體技術(shù)1.applet中加載圖片的方法
Java特別提供了java.awt.Image類來管理與圖像文件有關(guān)的信息,因此執(zhí)行與圖像文件有關(guān)的操作時(shí)需使用import引用這個(gè)類。Applet類中提供了getImage()方法將準(zhǔn)備好的圖像文件裝載到applet中,但必須首先指明圖像文件所存儲(chǔ)的位置。GetImage()方法的調(diào)用格式有以下兩種,這兩種調(diào)用格式的返回值都是Image對象。
ImagegetImage(URLurl)ImagegetImage(URLurl,Stringname)類URL代表一個(gè)統(tǒng)一資源定位符,它是指向互聯(lián)網(wǎng)資源的指針。資源可以是簡單的文件或目錄,也可以是對更為復(fù)雜的對象的引用,例如對數(shù)據(jù)庫或搜索引擎的查詢。
applet與多媒體技術(shù)(續(xù))2.applet中加載聲音的方法Java編程語言也具有播放音頻文件的方法,這些方法在java.applet.AudioClip類中。利用Java2中,可以播放WAV、AIFF、MIDI、AU和RMT格式的文件。播放音頻文件的最簡單的方式是通過applet的play()方法,有兩個(gè)形式,
play(URLsoundDirectory,StringsoundFile);play(URLsoundURL);applet與多媒體技術(shù)(續(xù))3.動(dòng)畫的生成和播放Java語言中的動(dòng)畫制作步驟是:第一步,在屏幕上顯示動(dòng)畫的第一幀(也就是第一幅畫面);第二步,每隔很短的時(shí)間再顯示另外一幀,如此往復(fù)。具體的實(shí)現(xiàn)過程是系統(tǒng)去調(diào)用repaint()方法來完成重畫任務(wù),而repaint()方法又去直接調(diào)用update()方法。update()方法目的是先清除整個(gè)applet區(qū)域里的內(nèi)容,然后再調(diào)用paint()方法,從而完成了一次重畫工作。這里涉及有關(guān)多線程的概念和工作原理,將在后面章節(jié)介紹。applet多媒體應(yīng)用實(shí)例程序分析本例是涉及圖像顯示、聲音以及動(dòng)畫播放效果的applet程序。在圖片顯示中利用getImage(getCodeBase(),"ittoolbox.gif")來加載圖片ittoolbox.gif,而getCodeBase()是用來取得a
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度農(nóng)村個(gè)人地基使用權(quán)轉(zhuǎn)讓及宅基地置換合同3篇
- 2025年農(nóng)村堰塘生態(tài)農(nóng)業(yè)與鄉(xiāng)村旅游合作開發(fā)合同
- 2025年度員工薪酬福利及晉升管理體系工資合同3篇
- 二零二五年度航空航天配件賒銷服務(wù)合同3篇
- 二零二五年度數(shù)據(jù)中心機(jī)房租賃協(xié)議含網(wǎng)絡(luò)及安全服務(wù)3篇
- 二零二五年度戀愛關(guān)系維系與責(zé)任分配協(xié)議3篇
- 二零二五年度企業(yè)年會(huì)禮品定制及派發(fā)合同3篇
- 2025合同樣例項(xiàng)目工程建設(shè)合作合同范本
- 二零二五年度養(yǎng)殖產(chǎn)業(yè)鏈供應(yīng)鏈金融服務(wù)合同書人3篇
- 2025年度新材料研發(fā)營銷策劃合作協(xié)議3篇
- 部編版一年級上冊語文期末試題含答案
- 2025屆東莞東華高級中學(xué)高一生物第一學(xué)期期末考試試題含解析
- 新疆巴音郭楞蒙古自治州庫爾勒市2024-2025學(xué)年高一生物上學(xué)期期末考試試題
- 軍事理論(上海財(cái)經(jīng)大學(xué)版)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 老兵和軍馬(2023年河南中考語文試卷記敘文閱讀題及答案)
- 非人力資源管理者的人力資源管理
- 物理-福建省福州市2024-2025學(xué)年高三年級上學(xué)期第一次質(zhì)量檢測(福州一檢)試題和答案
- 新課標(biāo)背景下:初中生物學(xué)跨學(xué)科主題學(xué)習(xí)課程設(shè)計(jì)與教學(xué)實(shí)施
- 人音版音樂五年級下冊獨(dú)唱《打起手鼓唱起歌》說課稿
- (高清版)AQ 2001-2018 煉鋼安全規(guī)程
- 單位委托員工辦理水表業(yè)務(wù)委托書
評論
0/150
提交評論