




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第12章applet程序設計教學目標了解applet的工作原理掌握applet程序中主要方法的使用掌握創(chuàng)建和運行applet程序的方法掌握Applet標記的使用掌握Javaapplet與Javaapplication的區(qū)別了解applet在多媒體中的應用引例例12.1當首次啟動JavaApplet小程序時,顯示面板上顯示字符串"Welcome!",如圖12-1(a)所示;當該Applet窗口被其它窗口遮擋后再次顯示時,顯示面板上顯示字符串"Welcomeback!",如圖12-1(b)所示。請看下面的源代碼。引例(續(xù))引例(續(xù))在命令控制臺窗口中,將當前目錄切換到Jpro12_1.html文件所在的目錄,然后在命令行中輸入:appletviewerJpro12_1.html,如圖所示。引例(續(xù))運行結果:
applet的工作機制www服務器www服務器www瀏覽器HTML文件…………..applet嵌入標記applet名…………..…………..…………..…………..下載HTML文件請求applet字節(jié)碼下載applet字節(jié)碼解釋執(zhí)行applet字節(jié)碼請求HTML文件applet的工作機制(續(xù))
編譯好的字節(jié)碼文件(.class)保存在特定的WWW服務器上,而另外一個嵌入了該字節(jié)碼文件名的HTML文件保存在同一個或另一個服務器上。當某一個瀏覽器向服務器請求下載嵌入了applet的文件時,該文件從WWW服務器上下載到客戶端,由WWW瀏覽器解釋HTML中的各種標記。當瀏覽器遇到嵌入applet標記的HTML文件時,它會根據applet的名字和位置自動將字節(jié)碼從服務器上下載到本地,并利用瀏覽器本身的Java解釋器執(zhí)行該字節(jié)碼文件。applet的層次結構java.lang.Objectjava.awt.Componetjava.awt.Containerjava.awt.Paneljava.applet.Appletjava.swing.JAppletapplet的生命周期初始化init()啟動start()終止stop()消亡destroy()退出瀏覽器下載applet字節(jié)碼并實例化啟動applet用戶離開applet所在頁面刷新或返回applet所在頁面applet的生命周期(續(xù))applet生命周期是指applet從開始載入、運行到停止、消亡的整個過程。1.publicvoidinit()初始化該方法用于applet的初始化。當applet第一次加載時,該方法會被自動調用。在這個方法中,可以做一些必要的初始化工作,這些內容包括創(chuàng)建和初始化程序運行所需要的對象實例,把圖形或字體載入內存,處理PARAM參數等。applet的生命周期(續(xù))2.publicvoidstart()該方法是用來啟動瀏覽器運行applet的主線程。調用init()方法將applet的初始化工作完成之后,start()方法會自動調用;當用戶刷新包含applet的頁面或者從其他頁面返回包含applet的頁面時,start()方法會被自動調用。start()方法可以被多次調用,這與init()方法是有區(qū)別的?;谶@樣的原因,可以把只調用一次的代碼放在init()方法中,而不能放在start()方法中。3.publicvoidstop()該方法在用戶離開包含applet的頁面時會被自動調用。與start()方法相同,stop()方法也可以被多次調用。當stop()方法被調用時,將停止一些耗費系統(tǒng)資源的活動,如播放動畫等。如果在applet中沒有動畫或者音樂文件的播放,可以不使用這個方法。applet的生命周期(續(xù))4.publicvoiddestroy()當用戶正常關閉瀏覽器時,瀏覽器會調用destroy()方法。該方法用于回收系統(tǒng)資源,如回收圖形用戶界面的系統(tǒng)資源、關閉連接等。至于applet實例本身,會由瀏覽器來負責從內存中清除,不需要在destroy()方法中清除。5.publicvoidpaint(Graphicsg)該方法用于在Applet的界面上顯示文字、圖形和其他界面元素。方法中帶有一個Graphics類參數,要將java.awt.Graphics包裝入,這個Graphics類參數不需要程序員擔心,瀏覽器會自動創(chuàng)建并將其傳遞給paint()方法。該方法也是瀏覽器可自動調用Applet類的方法,導致瀏覽器調用paint()方法的事件主要有如下三種:①Applet被啟動之后,將自動調用paint()來重新描繪自己的界面;②Applet所在的瀏覽器窗口改變時,例如窗口被放大、縮小、移動或被系統(tǒng)的其他部分遮蓋、覆蓋后又重新顯示在屏幕的最前方等。這些情況都要求Applet重畫它的界面,此時瀏覽器就自動調用paint()方法來完成此項工作。③Applet的其他相關方法被調用時,系統(tǒng)也會相應的調用paint()方法。例如,當repaint()方法被調用時,系統(tǒng)就首先調用update()方法將Applet實例所占用的屏幕空間清空,然后調用paint()方法重新繪制Applet的界面。applet的程序框架applet的程序框架(續(xù))如果在創(chuàng)建applet時,繼承的是Applet類,主類的結構不發(fā)生改變,但在Applet中加入組件或繪制圖形等方面有所變化。繼承Applet類的小應用程序需要引用的包和類聲明語句如下:importjava.applet.*;importjava.awt.*;publicclass子類名extendsApplet{…..}總之applet的創(chuàng)建有兩種方式。一種是使用JApplet類來實現,另一種是使用Applet類來實現的。隨著Swing組件的廣泛性,建議大家使用第一種方式。applet與HTML文件的配合1.HTML中的Applet標記<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傳遞參數
Javaapplication通過命令行接受用戶參數,在applet中,該任務是通過在HTML文件中使用param標記中name和value屬性向applet傳遞參數。在applet的定義中,使用方法getParameter()來讀取name參數提供的value。由于在HTML文件和applet之間傳遞的參數是以字符串形式表示的,因此在使用某些特殊類型的參數前應該將其強制轉化成特定的數據類型。applet的執(zhí)行Javaapplet程序執(zhí)行方式有兩種方式:1.在Web瀏覽器中執(zhí)行applet必須要嵌入到HTML文檔中,就可以在支持JavaApplet的瀏覽器中直接查看applet的結果,即只需雙擊嵌入了Applet的HTML頁面即可運行。這里的JavaApplet瀏覽器是指可以運行包含Applet的HTML文件的一切軟件系統(tǒng)。MicrosoftInternetExplorer、NetscapeNavigator等支持Java的web瀏覽器都是Applet瀏覽器,JavaApplet都可以在其中運行。2.使用appletviewer命令執(zhí)行Sun公司的JDK中附帶有一個專為查看applet而設計的工具appletviewer。它使得用戶無須使用web瀏覽器就可直接運行applet。appletviewer能從HTML文件中抽取出”<APPLET>”標簽,然后僅僅運行和這個applet相關的信息,其他內容將不會被顯示。appletviewer通過命令行方式運行,運行時會產生一個applet窗口,用于顯示執(zhí)行結果。另外,要制定一個嵌入applet字節(jié)碼的HTML文件名或URL,使得applet可以在指定區(qū)域顯示和執(zhí)行。具體命令格式如下:
appletviewer<HTMLfile或URL>applet與application1.Javaapplication程序是獨立完整的程序。Javaapplet程序是在WWW瀏覽器環(huán)境下運行,即不是完整的獨立運行程序。2.運行方式上,Javaapplication程序通過在命令行調用獨立的解釋器軟件即可運行。運行Javaapplet程序的解釋器不是獨立的軟件,而是嵌在WWW瀏覽器中作為瀏覽器軟件的一部分。運行Applet程序時,必須把它嵌在HTML中并激活瀏覽器中的解釋器,或者調用一些能夠模擬瀏覽器環(huán)境的軟件,如AppletViewer。applet與application(續(xù))3.程序結構上,Javaapplication程序的主類必須有一個main()方法,這是Javaapplication程序執(zhí)行的入口點。Javaapplet程序中不一定包含main()方法,但是Javaapplet程序的主類必須是類庫中已定義好的類Applet或JApplet的子類。由于JavaApplet不需要有main()方法作為程序的入口點,JavaApplet更多地是體現狀態(tài)和狀態(tài)之間的切換,而不是固定的順序化的執(zhí)行過程。4.程序編寫組成上,Javaapplet程序可以直接利用瀏覽器或者appletviewer運行圖形用戶界面,而Javaapplication程序必須另外書寫專門代碼來創(chuàng)建自己的圖形界面。因為applet是一種可在瀏覽器中執(zhí)行的小型Java程序。而大部分執(zhí)行applet所需的圖形支持環(huán)境已內建或以嵌入的方式放在瀏覽器中。Applet是繼承Panel的。即Applet是一種Panel。所以編寫applet時,并需要去作一個Frame來展示圖形的部分。瀏覽器自然會產生一個Panel作為圖形接口的容器。Javaapplication若要圖形接口,就須編寫有Frame或JFrame的實例作為外面的容器。applet與多媒體技術1.applet中加載圖片的方法
Java特別提供了java.awt.Image類來管理與圖像文件有關的信息,因此執(zhí)行與圖像文件有關的操作時需使用import引用這個類。Applet類中提供了getImage()方法將準備好的圖像文件裝載到applet中,但必須首先指明圖像文件所存儲的位置。GetImage()方法的調用格式有以下兩種,這兩種調用格式的返回值都是Image對象。
ImagegetImage(URLurl)ImagegetImage(URLurl,Stringname)類URL代表一個統(tǒng)一資源定位符,它是指向互聯網資源的指針。資源可以是簡單的文件或目錄,也可以是對更為復雜的對象的引用,例如對數據庫或搜索引擎的查詢。
applet與多媒體技術(續(xù))2.applet中加載聲音的方法Java編程語言也具有播放音頻文件的方法,這些方法在java.applet.AudioClip類中。利用Java2中,可以播放WAV、AIFF、MIDI、AU和RMT格式的文件。播放音頻文件的最簡單的方式是通過applet的play()方法,有兩個形式,
play(URLsoundDirectory,StringsoundFile);play(URLsoundURL);applet與多媒體技術(續(xù))3.動畫的生成和播放Java語言中的動畫制作步驟是:第一步,在屏幕上顯示動畫的第一幀(也就是第一幅畫面);第二步,每隔很短的時間再顯示另外一幀,如此往復。具體的實現過程是系統(tǒng)去調用repaint()方法來完成重畫任務,而repaint()方法又去直接調用update()方法。update()方法目的是先清除整個applet區(qū)域里的內容,然后再調用paint()方法,從而完成了一次重畫工作。這里涉及有關多線程的概念和工作原理,將在后面章節(jié)介紹。applet多媒體應用實例程序分析本例是涉及圖像顯示、聲音以及動畫播放效果的applet程序。在圖片顯示中利用getImage(getCodeBase(),"ittoolbox.gif")來加載圖片ittoolbox.gif,而getCodeBase()是用來取得a
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 英語培訓教學協(xié)議書
- 運城租房協(xié)議書模板
- 住宅無償使用協(xié)議書
- 養(yǎng)生門店聯營協(xié)議書
- 社會超市轉讓協(xié)議書
- 娘舅房產繼承協(xié)議書
- 農村廚師協(xié)議書范本
- 就業(yè)協(xié)議書范文模板
- 票據糾紛調解協(xié)議書
- 線路購買移交協(xié)議書
- (二模)烏魯木齊地區(qū)2025年高三年級第二次質量檢測語文試卷(含官方答案)
- 2018工程定額單價表
- 城區(qū)建筑垃圾處理資源再利用設備采購 投標方案(技術方案)
- 第11課《山地回憶》教學課件2024-2025學年統(tǒng)編版語文七年級下冊
- 建筑工程材料采購管理職責
- 【道法】歷久彌新的思想理念課件 2024-2025學年統(tǒng)編版道德與法治七年級下冊
- 【培訓課件】DOE培訓
- 水利工程信息化項目劃分表示例、單元工程質量標準、驗收應提供的資料目錄
- 一例有機磷農藥中毒個案護理
- 2025道路運輸安全員兩類人員考試考核題庫含答案全套
- 2025年高考數學備考立體幾何壓軸題(八省聯考新考向)
評論
0/150
提交評論