java中applet下载,Java Applet概述
課題名稱? ? 第九講 Java Applet概述 教學(xué)提示本講介紹掌握J(rèn)ava Applet程序的基本形式、生命周期、Applet標(biāo)記及Java Applet程序的設(shè)計(jì)方法和運(yùn)行環(huán)境。教學(xué)目的? ? 1. 掌握J(rèn)ava Applet程序的基本形式、生命周期、Applet標(biāo)記 2. 熟練掌握J(rèn)ava Applet程序的設(shè)計(jì)方法和運(yùn)行環(huán)境 重點(diǎn)? ? Java Applet程序的設(shè)計(jì)方法 難點(diǎn)? ? Java生命周期的概念 教學(xué)方法案例教學(xué)法,任務(wù)驅(qū)動(dòng)教學(xué)法教學(xué)手段? ? 幻燈片與投影示例? ? ?教學(xué)內(nèi)容? 第九講 Java Applet概述? 9. 1什么是Java Applet? Java Applet 是另一類非常重要的Java程序,雖然它的源代碼編輯與字節(jié)碼的編譯生成過(guò)程與Java Application相同,但它卻不是一類可以獨(dú)立運(yùn)行的程序,相反,它的字節(jié)碼文件必須嵌入到另一種HTML語(yǔ)言的文件中,并由負(fù)責(zé)解釋HTML文件的WWW瀏覽器充當(dāng)解釋器,來(lái)解釋執(zhí)行Java Applet的字節(jié)碼程序。? 9.1.1 一個(gè)最簡(jiǎn)單的Java Applet? 首先看一個(gè)最簡(jiǎn)單的Java Applet程序:? 【例9.1】HelloApplet.java? import java.applet.*; //將java.applet 包中的系統(tǒng)類引入本程序? import java.awt.*;//將java.awt包中的系統(tǒng)類引入本程序? public class HelloApplet extends Applet{? public void paint(Graphics screen){? screen.setColor(Color.red);? screen.drawString("你好,Java世界!",2,20);? }? }? 先編譯生成HelloApplet.class文件,然后建立一個(gè)網(wǎng)頁(yè)文件HelloApplet.html,如下:? ?
我的第一個(gè)JavaApplet程序? ? ? 這里將顯示一個(gè)applet小程序? ? ? ? 將該html文件放在與class文件相同的目錄下,用支持Java的瀏覽器如IE或Netscape打開(kāi),“你好,Java世界!”顯示在屏幕左上角,效果如圖9.1(a)所示。? ? 圖9.1(a)HelloApplet程序在IE瀏覽器中的執(zhí)行結(jié)果? ? ? ?圖9.1(b)HelloApplet程序在小程序查看器中的執(zhí)行結(jié)果? 對(duì)于HelloApplet.html文件和編譯生成HelloApplet.class文件,也可以使用Java的小程序查看器appletviewer來(lái)測(cè)試。在DOS窗口,進(jìn)入該html文件所在的目錄,鍵入如下命令:? appletviewer HelloApplet.html? 效果如圖9.1(b)所示。? 下面我們分析一下HelloApplet.java程序的結(jié)構(gòu)。? 首先,HelloApplet.java程序的第1、2行利用關(guān)鍵字import引入了程序需要用到的兩個(gè)系統(tǒng)類。這兩個(gè)系統(tǒng)類分別位于不同的系統(tǒng)包中,所以引用時(shí)需要指明它們所在的包名。? 第3行聲明了一個(gè)名為HelloApplet的用戶自定義類。與Java Application相同,Java Applet程序也是由若干個(gè)類定義組成,而且這些類的定義也都是由class關(guān)鍵字標(biāo)志的。但是Java Applet中不需要用main方法,它要求的是程序中有且必須有一個(gè)類是系統(tǒng)類Applet的子類,也就是必須有一個(gè)類的類頭部分以extends Applet結(jié)尾,如:public class HelloApplet extends Applet,表示HelloApplet類是系統(tǒng)類Applet的子類。? 在HelloApplet 類體中定義了一個(gè)方法paint。實(shí)際上,paint方法是系統(tǒng)類Applet中已經(jīng)定義好的成員方法,它與其他的一些Applet中的方法一樣,能被WWW瀏覽器識(shí)別,并在恰當(dāng)?shù)臅r(shí)刻自動(dòng)調(diào)用,所以用戶程序定義的Applet子類只需繼承這些方法并按具體需要改寫(xiě)其內(nèi)容(這個(gè)過(guò)程稱為“重載”),就可以使WWW瀏覽器在解釋Java Applet程序時(shí)通過(guò)自動(dòng)執(zhí)行用戶改寫(xiě)過(guò)的成員方法,例如paint方法,來(lái)實(shí)現(xiàn)用戶程序預(yù)期的功能。? 9.1.2 Java Applet的運(yùn)行方式? 1.運(yùn)行方式? Java Applet與應(yīng)用程序的區(qū)別在于它們的運(yùn)行方式不同。應(yīng)用程序是由Java解釋器通過(guò)裝載其主類文件來(lái)運(yùn)行的,程序入口是主類文件中的main方法。而Java Applet是運(yùn)行在支持Java的瀏覽器上,如Netscape Navigator、Microsoft IE、Opera和Sun的HotJava瀏覽器。? Java Applet也可以使用Java2 SDK中的appletviewer(小程序查看器)來(lái)測(cè)試。在DOS窗口,進(jìn)入該html文件所在的目錄,鍵入如下命令:? appletviewer ? 所有的Java Applet程序中都必須有一個(gè)系統(tǒng)類Applet的子類。系統(tǒng)類Applet中已經(jīng)定義了很多的成員域和成員方法,它們規(guī)定了Applet如何與執(zhí)行它的解釋器――WWW瀏覽器配合工作,所以當(dāng)用戶程序使用Applet的子類時(shí),因?yàn)槔^承,這個(gè)子類將自動(dòng)擁有父類的有關(guān)成員,從而使WWW瀏覽器順利地執(zhí)行并實(shí)現(xiàn)用戶程序定義的功能。? Applet的運(yùn)行過(guò)程可以用圖9.2來(lái)表示,首先將編譯好的字節(jié)碼文件和編寫(xiě)好的HTML文件(其中包含字節(jié)碼文件名)保存在Web服務(wù)器的合適路徑下;當(dāng)WWW瀏覽器下載此HTML文件并顯示時(shí),它會(huì)自動(dòng)下載HTML中指定的Java Applet字節(jié)碼,然后調(diào)用內(nèi)置在瀏覽器中Java解釋器來(lái)解釋執(zhí)行下載到本機(jī)的字節(jié)碼程序。? ? ? ? 圖9.2 Java Applet執(zhí)行過(guò)程? 2.標(biāo)記? 標(biāo)記是HTML標(biāo)記的一種擴(kuò)展,用于將小程序放置到Web頁(yè)中,并控制其相對(duì)于Web頁(yè)其他部分的顯示效果。支持Java的瀏覽器使用該標(biāo)記中的信息來(lái)查找并執(zhí)行編譯后的小程序類文件(.class)。? 所有關(guān)于小程序的參數(shù)和屬性設(shè)置必須位于標(biāo)記塊和之內(nèi)(或者)。當(dāng)用戶使用支持Java的瀏覽器裝載包含小程序的Web頁(yè)時(shí),該瀏覽器將從Web服務(wù)器下載該小程序,然后使用Java解釋器在用戶的系統(tǒng)上運(yùn)行它。? 【例9.2】標(biāo)記塊和之內(nèi)的參數(shù)和屬性設(shè)置。? ? ? Example Applet ? ? ? ? ? This program requires a Java-enabled browser, if not, the Applet cannot be viewed.? ? ? ? 這些參數(shù)和屬性的含義是:? archive: 小程序運(yùn)行所需的jar文件。? code: 小程序的主類文件名。? codebase: 相對(duì)于class文件的相對(duì)地址或絕對(duì)URL地址,“.”表明class文件與HTML文件位于相同的文件夾中。? name: Applet內(nèi)部通信參數(shù)的名稱,可以顯示在瀏覽器的狀態(tài)欄。? width: 小程序窗口的寬度。? height: 小程序窗口的高度。? hspace: 小程序同周圍文本之間的水平間距(單位為像素)。? vspace: 小程序同周圍文本之間的垂直間距(單位為像素)。? align: 小程序相對(duì)于Web頁(yè)其他部分的對(duì)齊方式,有以下八種取值:Left、Right、TextTop、Top、AbsMiddle、Middle、BaseLine、AbsBottom。? param: Applet運(yùn)行所需的參數(shù)。? 其中,屬性width和height是必不可少的,因?yàn)閃eb瀏覽器需要知道Web頁(yè)中的多大空間將用于該小程序,以免在小程序窗口外的區(qū)域中繪圖。在最簡(jiǎn)單的情況下,標(biāo)記使用width和height屬性來(lái)創(chuàng)建一個(gè)大小合適的區(qū)域,然后在其中裝載并運(yùn)行該小程序。? 屬性code和codebase用于指出小程序的主類文件和其他文件的位置。支持Java的瀏覽器從Web服務(wù)器下載小程序并試圖運(yùn)行它時(shí),將使用這些屬性。code指出了小程序的主類文件名(必須使用文件擴(kuò)展名.class),如果使用code時(shí)沒(méi)有同時(shí)使用codebase,將從小程序所屬的Web頁(yè)所在的文件夾中下載類文件。屬性codebase讓瀏覽器在另一個(gè)文件夾中查找小程序及其使用的文件,codebase指出了一個(gè)文件夾或網(wǎng)站地址,從這些地方可以裝載類和其他文件。例如:? 從Web頁(yè)所在的文件夾中裝載Example.class類:? ? ? 從文件夾firstApplet中裝載Example.class類:? ? ? 下面的標(biāo)記從另一個(gè)站點(diǎn)下載Example.class類文件:? ? ? Java存檔文件(JAR文件)是將主類、助手類和其他文件打包成一個(gè)文件。不使用jar文件時(shí),對(duì)于小程序所需的每個(gè)文件(包括助手類、圖像、音頻文件、文本文件等),都需要在Web瀏覽器與包含該文件的服務(wù)器之間建立一條連接,用戶需等待較長(zhǎng)的時(shí)間。通過(guò)使用jar文件,瀏覽器只需與服務(wù)器建立一條連接,因此可提高下載并運(yùn)行小程序的速度。? 可在標(biāo)記和之間包含文本、圖像和其他Web頁(yè)元素。當(dāng)瀏覽器不支持Java時(shí)將顯示這些內(nèi)容,通過(guò)這種方式可以告訴人們:因?yàn)闉g覽器不支持Java,因此Java Applet沒(méi)有被執(zhí)行。如果不在和之間包含任何內(nèi)容,則不支持Java的瀏覽器將不會(huì)在小程序所在的位置顯示任何內(nèi)容。? 9.2 Applet的基本用法? 9.2.1 java.Applet包簡(jiǎn)介? java.Applet包包括一個(gè)類和三個(gè)接口:類Applet和接口AppletContext、AppletStub、AudioClip。在設(shè)計(jì)applet程序時(shí),所有的applet必須繼承Applet類,類Applet提供了小應(yīng)用程序及其環(huán)境之間的標(biāo)準(zhǔn)接口。? 1.類Applet? Applet類的層次結(jié)構(gòu)如下:? java.lang.Object? ? ?+ -- java.awt.Component? ? + -- java.awt.Container? ? ?+ -- java.awt.Panel? ? ?+ -- java.applet.Applet? ? ?2.成員函數(shù)介紹? void destroy()方法:由瀏覽器調(diào)用,用來(lái)回收當(dāng)前applet及其占用的系統(tǒng)資源。在調(diào)用本方法前通常先調(diào)用stop()方法。Applet的子類可以通過(guò)重寫(xiě)本方法使applet在被回收之前執(zhí)行特定的操作。例如使用線程的applet可以通過(guò)init()創(chuàng)建線程,通過(guò)destroy()方法來(lái)殺死線程。? AppletContext getAppletContext()方法:返回當(dāng)前applet的上下文,使applet可以查詢和影響運(yùn)行時(shí)所處的環(huán)境。? String getAppletInfo():返回當(dāng)前applet的信息,如applet的作者、版本、版權(quán)等。? AudioClip getAudioClip(URL url)方法:返回指定URL地址(絕對(duì)地址)所提供的AudioClip對(duì)象。當(dāng)applet試圖播放該聲音片斷時(shí),數(shù)據(jù)被下載。? AudioClip getAudioClip(URL url, String name) 方法:返回指定URL地址所提供的AudioClip對(duì)象。參數(shù)name指出聲音片斷的相對(duì)地址,與參數(shù)url提供的基地址組合在一起就是完整的URL地址。? URL getCodeBase()方法:返回當(dāng)前applet的.class文件的URL地址。? URL getDocumentBase()方法:返回裝載當(dāng)前applet的HTML文件的URL地址。? Image getImage(URL url)方法:返回URL地址(絕對(duì)地址)指定的圖形對(duì)象。當(dāng)applet試圖顯示該對(duì)象時(shí),數(shù)據(jù)將被下載。? Image getImage(URL url, String name) 方法:獲取并返回可以被顯示在屏幕上的圖像對(duì)象。參數(shù)url是基地址,name是圖像的相對(duì)地址,兩者結(jié)合構(gòu)成完整的URL地址。? String getParameter(String name) 方法:返回HTML文件中指定參數(shù)所對(duì)應(yīng)的值。? String[][] getParameterInfo()方法:返回當(dāng)前applet參數(shù)信息的字符串二位數(shù)組。字符串二位數(shù)組的每個(gè)基本元素都包括三個(gè)字符串:名稱、類型以及描述信息。? public void init()方法:由瀏覽器調(diào)用,用來(lái)通知applet已經(jīng)被裝載到系統(tǒng)中。Applet的子類可以通過(guò)重寫(xiě)本方法使applet完成初始化工作,包括創(chuàng)建所需要的對(duì)象、設(shè)置初始狀態(tài)、裝載圖像或字體、設(shè)置參數(shù)等。例如使用線程的applet可以通過(guò)init()創(chuàng)建線程,通過(guò)destroy()方法來(lái)殺死線程。? Boolean isActive()方法:判斷當(dāng)前applet是否出于活動(dòng)狀態(tài)。隨著start()方法的調(diào)用applet將被標(biāo)記為活動(dòng)狀態(tài);當(dāng)stop()方法被調(diào)用后,applet將立即轉(zhuǎn)為非活動(dòng)狀態(tài)。? void play(URL url) 方法:根據(jù)參數(shù)提供的URL地址播放聲音片斷。若無(wú)法找到該聲音片斷,則本方法將不做任何事情。? void play(URL url, String name) 方法:根據(jù)參數(shù)提供的URL地址播放聲音片斷。若無(wú)法找到該聲音片斷,則本方法將不做任何事情。url指出基地址,name是相對(duì)地址,兩者結(jié)合構(gòu)成完整的URL地址。? void resize(Dimension d)方法:根據(jù)新尺寸調(diào)整applet的大小。? void resize(int width, int height) 方法:根據(jù)長(zhǎng)、寬調(diào)整當(dāng)前applet的大小。? public final void setStub(AppletStub stub) 方法:設(shè)置當(dāng)前applet的存根,它由系統(tǒng)自動(dòng)調(diào)用。? void showStatus(String msg) 方法:在狀態(tài)窗口中顯示參數(shù)字符串的內(nèi)容。許多瀏覽器提供了狀態(tài)窗口,使用戶可以即時(shí)獲取當(dāng)前狀態(tài)信息。? public void start()方法:由瀏覽器調(diào)用,用來(lái)通知applet可以開(kāi)始執(zhí)行。當(dāng)調(diào)用init()方法后以及每次applet被重新訪問(wèn)時(shí)調(diào)用本方法。Applet的子類可以通過(guò)重寫(xiě)本方法使applet每次被訪問(wèn)時(shí)執(zhí)行特定的操作。例如,對(duì)于一個(gè)完成動(dòng)畫(huà)功能的applet可以使用start()方法來(lái)重新開(kāi)始動(dòng)畫(huà)演示,使用stop()方法將動(dòng)畫(huà)線程掛起。? public void stop()方法:由瀏覽器調(diào)用,用來(lái)通知applet停止執(zhí)行。當(dāng)用戶離開(kāi)Web主頁(yè)或調(diào)用destroy()方法前調(diào)用本方法。Applet的子類可以通過(guò)重寫(xiě)本方法使applet每次停止時(shí)執(zhí)行特定的操所。例如,對(duì)于一個(gè)完成動(dòng)畫(huà)功能的applet可以使用start()方法來(lái)重新開(kāi)始動(dòng)畫(huà)演示,使用stop()方法將動(dòng)畫(huà)線程掛起。? 9.2.2 Java Applet的方法與生命周期? 在一個(gè)Applet的生命周期中,共有4種狀態(tài)和4個(gè)方法:init()、start()、stop()和destroy()。? ? ? ?圖9.3 Applet生命周期與主要方法? 初始化方法init()在小程序被裝載時(shí)發(fā)生,該方法在Applet的生命周期中只執(zhí)行一次。初始化包括創(chuàng)建小程序所需要的對(duì)象、設(shè)置初始狀態(tài)、裝載圖像和字體、設(shè)置某些參數(shù)。初始化小程序時(shí),一項(xiàng)很重要的工作是設(shè)置背景窗口的顏色,用setBackground(Color color)。? 小程序初始化后,瀏覽器將調(diào)用start()方法啟動(dòng)程序。小程序被終止后,也可以將它重新啟動(dòng)。例如,如果用戶單擊超鏈接進(jìn)入其他頁(yè)面,則小程序?qū)⑼V?#xff1b;當(dāng)用戶回到包含該小程序的頁(yè)面時(shí),它會(huì)被再次啟動(dòng)。在小程序的生命期中初始化只發(fā)生一次,但可以啟動(dòng)多次。? 加入start()方法中的功能可能是啟動(dòng)一個(gè)線程來(lái)控制小程序,向助手對(duì)象發(fā)送消息或以某種方式命令小程序開(kāi)始運(yùn)行。因?yàn)锳pplet是Panel的子類,所以經(jīng)常會(huì)調(diào)用paint()方法來(lái)繪制圖形,當(dāng)applet所在的瀏覽器空間發(fā)生變化時(shí),paint()也會(huì)被調(diào)用。? 終止和啟動(dòng)是成對(duì)出現(xiàn)的。用戶離開(kāi)包含小程序的頁(yè)面或小程序調(diào)用stop()方法時(shí),該小程序?qū)⒔K止。默認(rèn)情況下,即使在用戶離開(kāi)了頁(yè)面后,小程序啟動(dòng)的線程仍將繼續(xù)執(zhí)行。通過(guò)覆蓋stop()方法可以將線程掛起,并在用戶返回小程序所在的頁(yè)面時(shí)重新啟動(dòng)它們。? 當(dāng)卸載applet時(shí),瀏覽器調(diào)用destroy()方法終止,使小程序釋放其鎖定的資源。通常用戶自己不需覆蓋destroy(),除非有特殊的資源需要釋放,如小程序創(chuàng)建的線程。因?yàn)镴ava有一個(gè)自動(dòng)的無(wú)用單元收集器,用于管理內(nèi)存。當(dāng)程序使用完資源后,收集器將收回這些資源使用的內(nèi)存。? 另外一個(gè)重要的方法是繪圖方法paint(),它不是Applet類里定義的方法,而是繼承自java.awt.Container類中的paint方法。繪圖指的是小程序如何在屏幕上顯示東西,這些可以是文本、幾何圖形或圖像。每當(dāng)小程序的窗口需要顯示或重新顯示時(shí),該方法都將被調(diào)用。? 與上述四個(gè)方法不同,paint()需要接受一個(gè)參數(shù):Graphics類的實(shí)例。該對(duì)象被瀏覽器創(chuàng)建,并被傳遞給paint();該對(duì)象表示被繪制的區(qū)域,即小程序窗口。每當(dāng)小程序窗口需要重新繪制時(shí),包含小程序的環(huán)境(通常是Web瀏覽器)將自動(dòng)調(diào)用paint()方法;要在小程序中請(qǐng)求重新繪制窗口,可以調(diào)用小程序的repaint()方法,無(wú)參數(shù)。? 【例9.3】用輸出相應(yīng)字符串的方法,指示出Applet生命周期中init()、start()、stop()、destroy()方法的執(zhí)行時(shí)間。? import java.awt.*;? import java.applet.*;? public class AppletLifeCycle extends Applet? {String status = "";//成員變量? public void init()//創(chuàng)建時(shí)調(diào)用此方法? {? status += "Call init() ->";? }? public void start()//啟動(dòng)時(shí)調(diào)用此方法? {? status+="Call start() ->";? }? public void stop()//停止時(shí)調(diào)用此方法? {? status+="Call stop() ->";? }? public void destroy()//退出時(shí)調(diào)用此方法? {? status+="Call destory() ->";? }? public void paint(Graphics g)//被repaint()調(diào)用的方法? {? g.drawString(status,20,40);//繪制字符串? }? }? Html文件設(shè)計(jì)如下:? ? ? ? ? 首次運(yùn)行顯示結(jié)果如圖9.4(a),init()方法和start()方法被調(diào)用,當(dāng)停止Applet后重新運(yùn)行,可以發(fā)現(xiàn)stop()方法和destroy()方法被調(diào)用過(guò)。重新運(yùn)行Applet時(shí),顯示結(jié)果如圖9.4(b)所示。? 注意:為了停止并重新運(yùn)行Applet,可將窗口最小化后在再最大化,即要刷新窗口。可使用控制菜單,先選擇“停止”,再選擇“重新啟動(dòng)”。? ? ? 9.4(a)運(yùn)行Applet的界面? ? ? ? ?9.4(b)重新運(yùn)行Applet的界面? 9.3 Java Applet的參數(shù)存取? Java Applet從所在的HTML頁(yè)面讀取參數(shù)。? 在包含小程序的HTML文件中,使用放置于和之間的標(biāo)記來(lái)指出每個(gè)參數(shù)。該標(biāo)記有兩個(gè)用于指定參數(shù)名稱和值的屬性:name和value。如:? ? ? ? ? This is a java applet game.? ? 上述代碼定義了小程序Game的三個(gè)參數(shù):一個(gè)名為font,值為TimesRoman;另一個(gè)名為color,值為#FF0000(以#開(kāi)始的十六進(jìn)制字符串用來(lái)表示顏色,該值代表紅色);最后一個(gè)名為size,值為24。? 小程序被裝載時(shí),參數(shù)將被傳遞給小程序。在小程序的init()方法中,可以使用方法getParameter()來(lái)獲得這些參數(shù)的值,所有的參數(shù)值都作為字符串被返回。如:? String fontName = getParameter("font" );? String background = getParameter("color");? String fontSize = getParameter("size");? 中指定的參數(shù)與gerParameter()中的參數(shù)名必須相同(包括大小寫(xiě))。如果參數(shù)沒(méi)有在HTML文件中指定,則gerParameter()返回null。大多數(shù)情況下,需要檢測(cè)null,并提供合理的默認(rèn)值,如下:? if ( fontName = = null )? fontName="TimesRoman";? 由于gerParameter()返回的是字符串,如果要求參數(shù)是其他對(duì)象或類型,必須自己進(jìn)行轉(zhuǎn)換。如要得到int型的size變量,可采用如下代碼:? int theSize;? String fontSize = getParameter("size");? if (fontSize = =null )? theSize = 12;? else? the Size=Integer.parseInt(fontSize);? 【例9.4】把HTML文件中設(shè)置的兩組數(shù)據(jù)(“Yaoming”,30)和(“Shark”,40)傳遞給Applet,并在Applet界面中顯示。? HTML文件設(shè)計(jì)如下:? ? Applet Parameter Setting? ? ? ?? ? ? ? ? 在該HTML文件中,指定要運(yùn)行的Applet為AppletParameter.class,圖形界面的顯示寬度為280像素,高度為100像素,如果不支持Applet,運(yùn)行時(shí)顯示“Browser does not support Java Applet”。用屬性param設(shè)置了兩個(gè)參數(shù),一個(gè)參數(shù)的name為“Yaoming”,數(shù)值為30;另一個(gè)參數(shù)的name為“Shark”,數(shù)值為40。? 與此相應(yīng)地,Java Applet程序AppletParameter.java設(shè)計(jì)如下:? import java.awt.*;? import java.applet.*;? public class AppletParameters extends Applet? {? String score1, score2;? String message1, message2;? int s1, s2;? public void init()//啟動(dòng)瀏覽器時(shí)調(diào)用? {? score1 = getParameter("Yaoming");? //取得Applet所嵌入的HTML文件的參數(shù)Yaoming的數(shù)值? score2 = getParameter("Shark");? //取得Applet所嵌入的HTML文件的參數(shù)Shark的數(shù)值? s1= Integer.parseInt(score1);//將字符串score1轉(zhuǎn)換成整數(shù)? s2= Integer.parseInt(score2);//將字符串score2轉(zhuǎn)換成整數(shù)? message1 = "Yaoming scores is:"+score1;//構(gòu)造字符串message1? message2 = "Shark scores is:"+score2;//構(gòu)造字符串message2? }? public void paint(Graphics g)? {? g.drawString(message1,20,40);//在(20,40)位置繪制message1? g.drawString(message2,20,55); //在(20,55)位置繪制message2? g.fillRect(150,35,s1,10); //在(150,35)位置繪制寬為s1、高為10的實(shí)心矩形? g.fillRect(150,50,s2,10); //在(150,50)位置繪制寬為s2、高為10的實(shí)心矩形? }? }? 程序的運(yùn)行結(jié)果如圖9.5所示。? ? 圖9.5 數(shù)據(jù)傳遞的運(yùn)行結(jié)果? ? ? ? 小結(jié)? Java Applet是嵌入到HTML主頁(yè)中,由兼容Java語(yǔ)言的瀏覽器執(zhí)行的小程序。與Java Application不同,Java Applet中不需要用main方法,它要求的是程序中有且必須有一個(gè)類是系統(tǒng)類Applet的子類,運(yùn)行時(shí)由瀏覽器自動(dòng)下載HTML中指定的Java Applet字節(jié)碼,然后調(diào)用內(nèi)置在瀏覽器中Java解釋器來(lái)解釋執(zhí)行下載到本機(jī)的字節(jié)碼程序。? Applet嵌入HTML頁(yè)面中必須使用標(biāo)記,標(biāo)記是HTML標(biāo)記的一種擴(kuò)展,用于將小程序放置到Web頁(yè)中,并控制其相對(duì)于Web頁(yè)其他部分的顯示效果。主要使用的標(biāo)記包括code、width和height,分別用來(lái)指明Applet小程序的主類文件的位置、Applet小程序的寬度和高度。? 在一個(gè)Applet的生命周期中,共有4種狀態(tài)和4個(gè)方法:init()、start()、stop()和destroy()。初始化方法init()在小程序被裝載時(shí)發(fā)生,該方法在Applet的生命周期中只執(zhí)行一次。小程序初始化后,瀏覽器將調(diào)用start()方法啟動(dòng)程序。小程序被終止后,也可以將它重新啟動(dòng)。用戶離開(kāi)包含小程序的頁(yè)面或小程序調(diào)用stop()方法時(shí),該小程序?qū)⒔K止。當(dāng)卸載applet時(shí),瀏覽器調(diào)用destroy()方法終止,使小程序釋放其鎖定的資源。? Java Applet可以從所在的HTML頁(yè)面讀取參數(shù),在包含小程序的HTML文件中,使用放置于和之間的標(biāo)記來(lái)指出每個(gè)參數(shù),而在Java Applet程序中使用方法getParameter()來(lái)獲得這些參數(shù)的值,所有的參數(shù)值都作為字符串被返回。總結(jié)
以上是生活随笔為你收集整理的java中applet下载,Java Applet概述的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Java面向对象练习题之银行卡类和用户类
- 下一篇: 上兴远控流量分析报告