第9章Java的Applet編程_第1頁
第9章Java的Applet編程_第2頁
第9章Java的Applet編程_第3頁
第9章Java的Applet編程_第4頁
第9章Java的Applet編程_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Java的Applet編程1第第9 9章章 JavaJava的的AppletApplet編程編程Java的Applet編程2主要內(nèi)容主要內(nèi)容n9.1 Java Applet概述概述nApplet的生命周期的生命周期nApplet的繪圖周期的繪圖周期n9.2 實現(xiàn)一個簡單的實現(xiàn)一個簡單的Applet程序程序nApplet程序編寫與編譯程序編寫與編譯 n將將Applet嵌入嵌入Web網(wǎng)頁網(wǎng)頁 nApplet的執(zhí)行的執(zhí)行 n9.3 Applet生命周期狀態(tài)切換舉例生命周期狀態(tài)切換舉例n9.4 Applet的常用方法的常用方法n9.5 Applet的安全限制的安全限制作業(yè)作業(yè)Java的Applet編程

2、39.1 Java applet概述概述 Java小應用程序(小應用程序(Java Applet)是使用是使用Java語語言編寫的一段代碼,它能夠在瀏覽器環(huán)境中運行。言編寫的一段代碼,它能夠在瀏覽器環(huán)境中運行。 Applet與與Application的主要區(qū)別在于它們的執(zhí)的主要區(qū)別在于它們的執(zhí)行方式不同:行方式不同:Application是使用命令行命令直接是使用命令行命令直接運行,從其運行,從其main()方法開始運行的方法開始運行的;而而Applet則則是在瀏覽器中運行的,首先必須創(chuàng)建一個是在瀏覽器中運行的,首先必須創(chuàng)建一個HTML文文件,件,通過編寫通過編寫HTML語言代碼告訴瀏覽器載入

3、何種語言代碼告訴瀏覽器載入何種Applet以及如何運行,再在瀏覽器中給出該以及如何運行,再在瀏覽器中給出該HTML文件的文件的URL地址即可,地址即可,Applet本身的執(zhí)行過程也較本身的執(zhí)行過程也較Application復雜。復雜。Java的Applet編程4njava.lang.Objectn java.awt.Componentn java.awt.Containern java.awt.Paneln java.applet.Appletn javax.swing.JAppletJava的Applet編程51. 編寫一個編寫一個Appletn編寫一個Applet,必須首先從java.ap

4、plet.Applet派生一個類,之前必須加上public :import java.applet.*;public class SimpleApplet extends Applet n如果使用Swing組件編寫applet,則applet必須擴展javax.swing.JApplet類來實現(xiàn),以JApplet作為頂層容器,在其中加入Swing組件,從而保證所有的繪圖和更新動作都能夠正確地執(zhí)行。Java的Applet編程62. Applet的程序結(jié)構(gòu)的程序結(jié)構(gòu)下面是一個簡單的applet的程序結(jié)構(gòu)。如圖:public class SimpleJApplet extends JAppletpu

5、blic void init()public void start()public void stop()public void destroy()public void paint(Graphics g)Java的Applet編程7Java.applet.Appletpublic void init()public void destroy()public void start()public void stop()public void paint(Graphics g)paint()雖不在生命周期內(nèi)雖不在生命周期內(nèi),但它的作用相當于但它的作用相當于applet的靈魂的靈魂Java的App

6、let編程8n編程時可按此結(jié)構(gòu)進行這編程時可按此結(jié)構(gòu)進行這5個關(guān)鍵方法覆蓋,個關(guān)鍵方法覆蓋,但并不是每個但并不是每個applet都要覆蓋這些方法,有都要覆蓋這些方法,有些簡單的些簡單的applet可以一個方法也不覆蓋。可以一個方法也不覆蓋。napplet一開始運行,就會由瀏覽器或一開始運行,就會由瀏覽器或appletviewer自動啟動兩個線程周期。一個自動啟動兩個線程周期。一個是生命周期,另一個是繪圖周期。是生命周期,另一個是繪圖周期。Java的Applet編程9 初始態(tài)(瞬態(tài))初始態(tài)(瞬態(tài))運行態(tài)運行態(tài)停止態(tài)停止態(tài)消亡態(tài)消亡態(tài)離開離開web頁面:極小頁面:極小化或裝入其他頁面,化或裝入其他

7、頁面,調(diào)用調(diào)用stop()方法方法重新裝入或改變頁面重新裝入或改變頁面大小或返回大小或返回Web頁面,頁面,調(diào)用調(diào)用start()方法方法關(guān)閉瀏覽器,調(diào)用關(guān)閉瀏覽器,調(diào)用destroy()方法方法第一次裝入,構(gòu)造第一次裝入,構(gòu)造applet類,調(diào)用類,調(diào)用init()方方法法調(diào)用調(diào)用start()方法方法9.1.1 Applet的生命周期Java的Applet編程10nApplet中沒有中沒有main()方法。當方法。當Applet被瀏被瀏覽器運行時,覽器運行時, init() 、start()、stop()、destroy()方法等自動執(zhí)行:方法等自動執(zhí)行:n init()方法:初始化,自動

8、調(diào)用,只執(zhí)行一次。方法:初始化,自動調(diào)用,只執(zhí)行一次。本方法主要完成一些在本方法主要完成一些在Applet構(gòu)造方法所不能構(gòu)造方法所不能完成的工作。完成的工作。Java的Applet編程11 start()方法:初始化后,重入等都將自動調(diào)用。方法:初始化后,重入等都將自動調(diào)用。本方法是本方法是Applet的主體,在其中可以執(zhí)行一些的主體,在其中可以執(zhí)行一些任務或啟動相關(guān)的線程來執(zhí)行任務。任務或啟動相關(guān)的線程來執(zhí)行任務。 stop()方法:離開方法:離開Applet所在頁面時調(diào)用,以所在頁面時調(diào)用,以停止消耗系統(tǒng)資源。停止消耗系統(tǒng)資源。 destroy()方法:瀏覽器關(guān)閉時自動調(diào)用,以清方法:瀏覽

9、器關(guān)閉時自動調(diào)用,以清除除Applet所用的所有資源,所用的所有資源,該方法調(diào)用前肯定該方法調(diào)用前肯定要調(diào)用要調(diào)用stop()。Java的Applet編程129.1.2 Applet的繪圖周期的繪圖周期 napplet程序中所采用的繪圖機制主要涉及三程序中所采用的繪圖機制主要涉及三個方法:個方法:paint()方法、方法、update()方法和方法和repaint()方法。方法。update()方法和方法和paint()方方法都有一個法都有一個Graphics類的對象作為參數(shù)。類的對象作為參數(shù)。Graphics是畫圖的關(guān)鍵,它可以支持兩種繪是畫圖的關(guān)鍵,它可以支持兩種繪圖:一種是基本的繪圖,如

10、:畫線、矩形、圖:一種是基本的繪圖,如:畫線、矩形、圓等;另一種是加載并顯示圖像,主要用于圓等;另一種是加載并顯示圖像,主要用于動畫制作。動畫制作。Java的Applet編程13Applet繪圖周期各方法之間的調(diào)用關(guān)系繪圖周期各方法之間的調(diào)用關(guān)系 Java的Applet編程149.2 實現(xiàn)一個簡單的實現(xiàn)一個簡單的Applet程序程序n9.2.1 Applet程序編寫與編譯程序編寫與編譯n1. Applet程序編寫程序編寫 【例例9.1】按照按照applet程序結(jié)構(gòu),編寫一個簡程序結(jié)構(gòu),編寫一個簡單的單的applet,即在,即在applet上繪制上繪制“Welcome to Java Progr

11、amming!”。源程序如下:源程序如下:/WelcomeApplet.javaimport java.awt.Graphics;import javax.swing.JApplet;Java的Applet編程15public class WelcomeApplet extends JAppletpublic void paint(Graphics g)super.paint(g); /調(diào)用超類調(diào)用超類JApplet的的paint方法方法/在坐標為(在坐標為(25,25)的位置顯示字符串)的位置顯示字符串g.drawString(Welcome to Java Programing!,25,2

12、5); Java的Applet編程16n【程序說明程序說明】 Java applet中不需要中不需要main方方法,要求程序中有且必須有一個類是系統(tǒng)類法,要求程序中有且必須有一個類是系統(tǒng)類Applet(在(在java.awt包中)或包中)或JApplet(在(在java.swing包中)的子類。包中)的子類。paint方法表示方法表示它將在它將在WWW所顯示的所顯示的Web頁面需要重畫時頁面需要重畫時(窗口移動或放縮時窗口移動或放縮時)被瀏覽器自動調(diào)用并執(zhí)被瀏覽器自動調(diào)用并執(zhí)行。行。 Java的Applet編程172. Applet的編譯的編譯 n如同應用程序的類,執(zhí)行前必須對如同應用程序的類

13、,執(zhí)行前必須對applet類類進行編譯,在命令行狀態(tài)使用進行編譯,在命令行狀態(tài)使用javac命令對命令對WelcomeApplet.java進行編譯,得到進行編譯,得到WelcomeApplet.class類文件。命令如下:類文件。命令如下:njavac WelcomeApplet.java Java的Applet編程189.2.2將將applet嵌入嵌入Web網(wǎng)頁網(wǎng)頁 napplet必須嵌入必須嵌入Web頁,并在頁,并在applet容器容器(appletviewer或瀏覽器)中才能運行,所或瀏覽器)中才能運行,所以在執(zhí)行以在執(zhí)行applet之前,必須創(chuàng)建之前,必須創(chuàng)建HTML文件,文件,指明

14、指明applet容器應裝入和執(zhí)行哪個容器應裝入和執(zhí)行哪個applet。n通常通常HTML文檔以文檔以“.html”或者或者“.htm”擴擴展名結(jié)尾。展名結(jié)尾。標記用于在標記用于在Web頁面頁面中嵌入中嵌入applet,頭標簽,頭標簽與尾標簽與尾標簽必須成對出現(xiàn)。必須成對出現(xiàn)。 下面介紹與下面介紹與Applet程序有關(guān)的程序有關(guān)的HTML文件標記。文件標記。 Java的Applet編程19HTML中中applet標記的使用標記的使用 . . . alternateHTML Java的Applet編程20最簡形式最簡形式n則則welcome.html文檔內(nèi)容如下:文檔內(nèi)容如下:Java的Apple

15、t編程219.2.3 Applet的執(zhí)行的執(zhí)行 Java的Applet編程22執(zhí)行執(zhí)行applet的兩種方法的兩種方法n方法方法1. 使用使用appletviewer運行運行applet運行運行applet的一種方法是使用的一種方法是使用JDK的內(nèi)置命的內(nèi)置命令令appletviwer。在命令行狀態(tài),輸入命令:。在命令行狀態(tài),輸入命令:nappletviewer welcome.html n方法方法2. 使用瀏覽器運行使用瀏覽器運行appletn運行運行applet的另一種方法是使用支持的另一種方法是使用支持java瀏覽瀏覽器。此處使用器。此處使用IE瀏覽器。在地址欄中輸入瀏覽器。在地址欄中輸

16、入HTML文檔的文檔的URL地址即可地址即可 Java的Applet編程239.3 applet生命周期狀態(tài)切換舉例生命周期狀態(tài)切換舉例nApplet生命周期的狀態(tài)切換生命周期的狀態(tài)切換 n【例例9.2】n彈出對話框彈出對話框Java的Applet編程249.4 Applet的常用方法的常用方法nURL說明說明nURL(Uniform Resource Locator,統(tǒng)一資源,統(tǒng)一資源定位符定位符),它是,它是Internet和和WWW的門戶,用來的門戶,用來標識標識Internet資源的地址。通常情況下,資源表資源的地址。通常情況下,資源表示一個文件,如一個示一個文件,如一個HTML文檔、

17、一個圖像文件文檔、一個圖像文件或一個聲音片斷等。或一個聲音片斷等。URL的通用格式是:的通用格式是:n:/ nURL類類 (全名全名.URL)有多種構(gòu)造方有多種構(gòu)造方法來描述各種類型的法來描述各種類型的URL。 Java的Applet編程25(1)絕對)絕對URL的構(gòu)造方法的構(gòu)造方法: URL(String spec) 例例: URL url=new URL (“http:/ /index.html”)(2)相對)相對URL的構(gòu)造方法的構(gòu)造方法:URL(URL base, String spec)例如,某絕對地址例如,某絕對地址:http:/,在該目,在該目錄下有兩個文件錄下有兩個文件 new

18、1.html和和new2.htmlURL base=new URL(“http:/”);URL url1=new URL(base,“new1.html”);URL url2=new URL(base,“new2.html”);(3)其他)其他URL的構(gòu)造方法的構(gòu)造方法:URL url=new URL (“http”, “”,“/index.html”); Java的Applet編程269.4.1 獲取獲取Applet的有關(guān)信息的有關(guān)信息ngetDocumentBase():返回包含該:返回包含該Applet對象對象Web頁面的地址頁面的地址ngetCodeBase():返回當前:返回當前ap

19、plet所在的所在的URLngetParameter(String target )提取提取HTML文件中文件中名為名為target的參數(shù)的值的參數(shù)的值 n返回由返回由HTML文件所提供的參數(shù)信息。文件所提供的參數(shù)信息。Applet提供提供了從了從Web頁面文件中提取參數(shù)的方法,可以在頁面文件中提取參數(shù)的方法,可以在HTML文件中通過文件中通過標記設置一些參數(shù)供標記設置一些參數(shù)供Applet使用。例如有如下的使用。例如有如下的HTML代碼:代碼: nn Java的Applet編程279.4.2 獲取多媒體文件獲取多媒體文件 n1. getImage(URL base,String target

20、):返回網(wǎng)址返回網(wǎng)址base中名為中名為target的圖像的圖像ngetImage方法將方法將Image加載到加載到applet中,此中,此方法有兩個參數(shù):圖像文件的位置和圖像文件名。方法有兩個參數(shù):圖像文件的位置和圖像文件名。第第1個參數(shù),通常是由個參數(shù),通常是由applet的的getDocumentBase或或getCodeBase方法返回方法返回的一個的一個URL,表示圖像在,表示圖像在Internet中的位置中的位置(如果(如果applet是從自己的計算機上加載的,則返是從自己的計算機上加載的,則返回圖像在計算機中的位置)?;貓D像在計算機中的位置)。 Java的Applet編程28n2

21、. getAudioClip(URL base,String target):返回地址:返回地址base中名為中名為target的聲的聲音音n返回由參數(shù)所指定的返回由參數(shù)所指定的AudioClip對象。對象。AudioClip是一個音頻剪輯對象的接口,它是一個音頻剪輯對象的接口,它提供了音頻對象的抽象控制。無論提供了音頻對象的抽象控制。無論URL指定指定的音樂文件是否存在,的音樂文件是否存在,getAudioClip()方法方法都會很快返回值,因為音頻文件要等到播放都會很快返回值,因為音頻文件要等到播放的時候才下載。的時候才下載。url參數(shù)指定的必須是一個絕參數(shù)指定的必須是一個絕對地址。對地址

22、。 Java的Applet編程29nAudioClip是一個接口,因此不能直接用是一個接口,因此不能直接用new創(chuàng)建一個聲音對象實例,它必須和創(chuàng)建一個聲音對象實例,它必須和Applet類一起使用,利用類一起使用,利用Applet類提供的聲類提供的聲音裝載方法載入一個聲音文件,形成一個聲音裝載方法載入一個聲音文件,形成一個聲音對象實例。之后利用接口音對象實例。之后利用接口AudioClip提供提供的三個方法進行聲音操作:的三個方法進行聲音操作:npublic void play():播放一遍:播放一遍npublic void loop() :循環(huán)播放:循環(huán)播放npublic void stop(

23、) :停止播放:停止播放Java的Applet編程30n【例例9.3HTML】設計一個設計一個applet,加載聲,加載聲音、圖像并循環(huán)播放、顯示。聲音、圖像文音、圖像并循環(huán)播放、顯示。聲音、圖像文件名利用件名利用getParameter方法由方法由HTML文件文件獲得。屏幕效果如圖所示。獲得。屏幕效果如圖所示。n源代碼源代碼Java的Applet編程319.4.3 同頁同頁applet間的通信間的通信 (1)public AppletContext getAppletContext()該方法可得到當前運行頁的環(huán)境上下文該方法可得到當前運行頁的環(huán)境上下文AppletContext對象。通過對象

24、。通過AppletContext對象,對象,可以得到當前小應用程序運行環(huán)境的信息??梢缘玫疆斍靶贸绦蜻\行環(huán)境的信息。AppletContext是一個接口,其中定義了一些方是一個接口,其中定義了一些方法可以得到當前頁的其它小應用程序,進而實現(xiàn)法可以得到當前頁的其它小應用程序,進而實現(xiàn)同頁小應用程序之間的通信。同頁小應用程序之間的通信。(2)public abstract Applet getApplet(String name)此方法可取得名為此方法可取得名為name的的Applet對象。對象。(3)public abstract Enumeration getApplets()此方法可得到

25、當前頁中所有此方法可得到當前頁中所有Applet對象對象 Java的Applet編程32n【例例9.4】同頁同頁applet間的通信示例。例中建立兩間的通信示例。例中建立兩個個applet小程序,一個完成發(fā)送信息功能,另一個小程序,一個完成發(fā)送信息功能,另一個完成接受信息功能。屏幕效果如圖所示。完成接受信息功能。屏幕效果如圖所示。Java的Applet編程33n準備兩個準備兩個applet程序:程序:nFirstApplet.java nSecondApplet.java n一個一個HTML文件文件web.htmlnnn同同web頁的頁的applet通信示例通信示例nnnnnn Java的Applet編程349.5 小應用程序的安全限制小應用程序的安全限制appletBrowserSERVER本地程序本地程序fileSERVERlocalconnectionconnectionapplet被下載的被下載的與與applet無關(guān)的無關(guān)的本地方法本地方法Java的Applet編程35n通過限制通過限制applet在沙箱在沙箱(applet的運行環(huán)境的運行環(huán)境)中運行,中運行,保證了對本地系統(tǒng)而言保證了對本地系統(tǒng)而言applet是安全的。是安全的。napplet在沙箱中運行時:在沙箱中運行時:不能運行任何本地可執(zhí)行程序;不能運行任何本地可執(zhí)行程序;除了存放下載的除了存放下載的a

溫馨提示

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

評論

0/150

提交評論