版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、1,Department of Computing,第21講 applet程序設計,2,Department of Computing,教學內(nèi)容,applet的工作原理 applet的生命周期 applet與HTML文件的配合 applet的執(zhí)行 Java applet與Java application的區(qū)別 applet與多媒體技術,3,Department of Computing,教學目標,了解applet的工作原理 掌握applet程序中主要方法的使用 掌握創(chuàng)建和運行applet程序的方法 掌握Applet標記的使用 掌握Java applet與Java application的區(qū)別
2、了解applet在多媒體中的應用,4,Department of Computing,引例,例12.1 當首次啟動Java Applet小程序時,顯示面板上顯示字符串“Welcome!”,如圖12-1(a)所示;當該Applet窗口被其它窗口遮擋后再次顯示時,顯示面板上顯示字符串“Welcome back!”,如圖12-1(b)所示。如何實現(xiàn)的?,5,Department of Computing,引例(續(xù)),6,Department of Computing,applet的工作機制,7,Department of Computing,applet的工作機制(續(xù)),編譯好的字節(jié)碼文件(.cla
3、ss)保存在特定的WWW服務器上,而另外一個嵌入了該字節(jié)碼文件名的HTML文件保存在同一個或另一個服務器上。當某一個瀏覽器向服務器請求下載嵌入了applet的文件時,該文件從WWW服務器上下載到客戶端,由WWW瀏覽器解釋HTML中的各種標記。當瀏覽器遇到嵌入applet標記的HTML文件時,它會根據(jù)applet的名字和位置自動將字節(jié)碼從服務器上下載到本地,并利用瀏覽器本身的Java解釋器執(zhí)行該字節(jié)碼文件。,8,Department of Computing,applet的層次結構,9,Department of Computing,applet的生命周期,10,Department of Co
4、mputing,applet的生命周期(續(xù)),applet生命周期是指applet從開始載入、運行到停止、消亡的整個過程。 1. public void init()初始化 該方法用于applet的初始化。當applet第一次加載時,該方法會被自動調(diào)用。在這個方法中,可以做一些必要的初始化工作,這些內(nèi)容包括創(chuàng)建和初始化程序運行所需要的對象實例,把圖形或字體載入內(nèi)存,處理PARAM參數(shù)等。,11,Department of Computing,applet的生命周期(續(xù)),2. public void start() 用來啟動瀏覽器運行applet的主線程。調(diào)用init()方法將applet的初
5、始化工作完成之后,start()方法會自動調(diào)用;當用戶刷新包含applet的頁面或者從其他頁面返回包含applet的頁面時,start()方法會被自動調(diào)用。 start()方法可以被多次調(diào)用,因此,可以把只調(diào)用一次的代碼放在init()方法中,而不能放在start()方法中。 3. public void stop() 該方法在用戶離開包含applet的頁面時會被自動調(diào)用。與start()方法相同,stop()方法也可以被多次調(diào)用。當stop()方法被調(diào)用時,將停止一些耗費系統(tǒng)資源的活動,如播放動畫等。如果在applet中沒有動畫或者音樂文件的播放,可以不使用這個方法。,12,Departme
6、nt of Computing,applet的生命周期(續(xù)),4. public void destroy() 當用戶正常關閉瀏覽器時,瀏覽器會調(diào)用destroy()方法。該方法用于回收系統(tǒng)資源,如回收圖形用戶界面的系統(tǒng)資源、關閉連接等。至于applet實例本身,會由瀏覽器來負責從內(nèi)存中清除,不需要在destroy()方法中清除。 5.public void paint(Graphics g) 該方法用于在Applet的界面上顯示文字、圖形和其他界面元素。方法中帶有一個Graphics類參數(shù),要將java.awt.Graphics包裝入,這個Graphics類參數(shù)不需要程序員擔心,瀏覽器會自動
7、創(chuàng)建并將其傳遞給paint()方法。,13,Department of Computing,applet的生命周期(續(xù)),paint()也是瀏覽器可自動調(diào)用Applet類的方法,導致瀏覽器調(diào)用paint()方法的事件主要有如下三種: Applet被啟動之后,將自動調(diào)用paint()來重新描繪自己的界面; Applet所在的瀏覽器窗口改變時,例如窗口被放大、縮小、移動或被系統(tǒng)的其他部分遮蓋、覆蓋后又重新顯示在屏幕的最前方等。這些情況都要求Applet重畫它的界面,此時瀏覽器就自動調(diào)用paint()方法來完成此項工作。 Applet的其他相關方法被調(diào)用時,系統(tǒng)也會相應的調(diào)用paint()方法。例如
8、,當repaint()方法被調(diào)用時,系統(tǒng)就首先調(diào)用update()方法將Applet實例所占用的屏幕空間清空,然后調(diào)用paint()方法重新繪制Applet的界面。,14,Department of Computing,applet的程序框架,15,Department of Computing,applet的程序框架(續(xù)),如果在創(chuàng)建applet時,繼承的是Applet類,主類的結構不發(fā)生改變,但在Applet中加入組件或繪制圖形等方面有所變化。繼承Applet類的小應用程序需要引用的包和類聲明語句如下: import java.applet.*; import java.awt.*; pu
9、blic class 子類名extends Applet . 總之a(chǎn)pplet的創(chuàng)建有兩種方式。一種是使用JApplet類來實現(xiàn),另一種是使用Applet類來實現(xiàn)的。隨著Swing組件的廣泛性,建議大家使用第一種方式。,16,Department of Computing,applet與HTML文件的配合,1. HTML中的Applet標記 . ,17,Department of Computing,applet與HTML文件的配合(續(xù)),2. 向applet傳遞參數(shù) Java application通過命令行接受用戶參數(shù),在applet中,該任務是通過在HTML文件中使用param標記中na
10、me和value屬性向applet傳遞參數(shù)。在applet的定義中,使用方法getParameter()來讀取name參數(shù)提供的value。由于在HTML文件和applet之間傳遞的參數(shù)是以字符串形式表示的,因此在使用某些特殊類型的參數(shù)前應該將其強制轉(zhuǎn)化成特定的數(shù)據(jù)類型。,18,Department of Computing,Java applet程序執(zhí)行方式有兩種方式: 1.在Web瀏覽器中執(zhí)行 applet必須要嵌入到HTML文檔中,就可以在支持Java Applet的瀏覽器中直接查看applet的結果,即只需雙擊嵌入了Applet的HTML頁面即可運行。 2.使用appletviewer
11、命令執(zhí)行 JDK工具appletviewer。它能從HTML文件中抽取出”標簽,然后僅僅運行和這個applet相關的信息,其他內(nèi)容將不會被顯示。 命令行方式運行,產(chǎn)生一個applet窗口,用于顯示執(zhí)行結果。具體命令格式如下: appletviewer ,applet的執(zhí)行,19,Department of Computing,1Java application程序是獨立完整的程序。Java applet程序是在WWW瀏覽器環(huán)境下運行,即不是完整的獨立運行程序。 2運行方式上,Java application程序通過在命令行調(diào)用獨立的解釋器軟件即可運行。運行Java applet程序的解釋器不是
12、獨立的軟件,而是嵌在WWW瀏覽器中作為瀏覽器軟件的一部分。運行Applet程序時,必須把它嵌在HTML中并激活瀏覽器中的解釋器,或者調(diào)用一些能夠模擬瀏覽器環(huán)境的軟件,如AppletViewer。,applet與application,20,Department of Computing,applet與application(續(xù)),3程序結構上,Java application程序的主類必須有一個main()方法,這是Java application程序執(zhí)行的入口點。Java applet程序中不一定包含main()方法,但是Java applet程序的主類必須是類庫中已定義好的類Applet或
13、JApplet的子類。由于Java Applet不需要有main()方法作為程序的入口點,Java Applet更多地是體現(xiàn)狀態(tài)和狀態(tài)之間的切換,而不是固定的順序化的執(zhí)行過程。 4程序編寫組成上,Java applet程序可以直接利用瀏覽器或者appletviewer運行圖形用戶界面,而Java application程序必須另外書寫專門代碼來創(chuàng)建自己的圖形界面。,21,Department of Computing,applet與多媒體技術,1.applet中加載圖片的方法 Java特別提供了java.awt.Image類來管理與圖像文件有關的信息,因此執(zhí)行與圖像文件有關的操作時需使用imp
14、ort引用這個類。Applet類中提供了getImage()方法將準備好的圖像文件裝載到applet中,但必須首先指明圖像文件所存儲的位置。GetImage()方法的調(diào)用格式有以下兩種,這兩種調(diào)用格式的返回值都是Image對象。 Image getImage(URL url) Image getImage(URL url,String name) 類 URL 代表一個統(tǒng)一資源定位符,它是指向互聯(lián)網(wǎng)資源的指針。資源可以是簡單的文件或目錄,也可以是對更為復雜的對象的引用,例如對數(shù)據(jù)庫或搜索引擎的查詢。,22,Department of Computing,applet與多媒體技術(續(xù)),2.app
15、let中加載聲音的方法 Java編程語言也具有播放音頻文件的方法,這些方法在java.applet.AudioClip類中。利用Java 2中,可以播放WAV、AIFF、MIDI、AU和RMT格式的文件。 播放音頻文件的最簡單的方式是通過applet的play()方法,有兩個形式, play(URL soundDirectory, String soundFile); play(URL soundURL);,23,Department of Computing,applet與多媒體技術(續(xù)),3動畫的生成和播放 Java語言中的動畫制作步驟是: 第一步,在屏幕上顯示動畫的第一幀(也就是第一幅畫
16、面) 第二步,每隔很短的時間再顯示另外一幀,如此往復。 具體的實現(xiàn)過程是系統(tǒng)去調(diào)用repaint( )方法來完成重畫任務,而repaint( )方法又去直接調(diào)用update( )方法。update( )方法目的是先清除整個applet區(qū)域里的內(nèi)容,然后再調(diào)用paint( )方法,從而完成了一次重畫工作。這里涉及有關多線程的概念和工作原理,將在后面章節(jié)介紹。,24,Department of Computing,applet多媒體應用實例,25,Department of Computing,程序分析,本例是涉及圖像顯示、聲音以及動畫播放效果的applet程序。在圖片顯示中利用getImage(
17、getCodeBase(),ittoolbox.gif )來加載圖片ittoolbox.gif,而getCodeBase()是用來取得applet程序所在的目錄,需要將ittoolbox.gif與Jpro12_6.java必須置于同一個目錄下才能運行。 在動畫的播放設計涉及到多線程思想,即通過實現(xiàn)Runnable接口來實現(xiàn)多線程,然后聲明一個Thread類型的實例變量,該實例變量用來存放新的線程對象。其次覆蓋start( )方法,在start( )方法中需要生成一個新線程并啟動這個線程。再將原來start( )方法中的主循環(huán)代碼放入run( )方法。 最后在paint()方法里,利用drawI
18、mage(img, 100, 150,this)把img加載,并把圖像的左上角置于(100, 150)處。這里的this關鍵字代表圖片所顯示的區(qū)域為目前的這個applet。利用play()方法可以將聲音播放一遍,但若想循環(huán)播放聲音,就需要用到功能更強大的AudioClip類。,26,Department of Computing,實例,例12.7 在applet中鼠標點擊的位置處顯示鼠標所在的位置。,27,Department of Computing,程序運行結果,本例中,在mousePressed()方法中,先定位鼠標當前點擊的位置坐標,再調(diào)用repaint()方法重畫圖形。然后再paint()方法中使用g.drawString、g.draw
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年吉林水利電力職業(yè)學院單招職業(yè)技能考試模擬測試卷附答案
- 2026年濰坊環(huán)境工程職業(yè)學院單招職業(yè)技能考試模擬測試卷及答案1套
- 2026年寧波城市職業(yè)技術學院單招職業(yè)傾向性測試題庫附答案
- 2026年娛樂測試心理考試題庫及答案1套
- 2026年山西??茊握性囶}附答案
- 2026年廣州城市職業(yè)學院單招職業(yè)技能考試模擬測試卷附答案
- 2026廣西賀州職業(yè)技術學院公開招聘教師及輔導員43人筆試備考題庫及答案解析
- 2026年心理教育期末測試題有答案
- 2025年杭州蕭山醫(yī)院醫(yī)共體總院招聘編外工作人員10人考試備考題庫附答案
- 2026福汽集團校園招聘279人筆試參考題庫及答案解析
- 2026年湖南民族職業(yè)學院單招綜合素質(zhì)筆試備考試題附答案詳解
- 全球AI應用平臺市場全景圖與趨勢洞察報告
- 2026.05.01施行的中華人民共和國漁業(yè)法(2025修訂)課件
- 維持性血液透析患者管理
- 2023-2024學年上海市閔行區(qū)四上數(shù)學期末綜合測試試題含答案
- 中鋁中州礦業(yè)有限公司禹州市方山鋁土礦礦山地質(zhì)環(huán)境保護和土地復墾方案
- 解除勞動合同證明電子版(6篇)
- 呼吸科規(guī)培疑難病例討論
- 基于PLC控制的小型鉆床機械設計
- DB11T 290-2005山區(qū)生態(tài)公益林撫育技術規(guī)程
- 開放大學(原電視大學)行政管理實務期末復習資料所有單
評論
0/150
提交評論