Applet類
Applet類是所有Applet應(yīng)用的基類,所有的Java小應(yīng)用程序都必須繼承該類。如下所示。
import java. applet.*;
public class OurApplet extends Applet
{
......
......
}
Applet類的構(gòu)造函數(shù)只有一種,即:public Applet()
Applet實(shí)現(xiàn)了很多基本的方法,下面列出了Applet類中常用方法和用途。
public final void setStub(AppletStub stub)
//設(shè)置Applet的stub.stub是Java和C之間轉(zhuǎn)換參數(shù)并返回值的代碼位,它是由系統(tǒng)自動(dòng)設(shè)定的。
public boolean isActive();// 判斷一個(gè)Applet是否處于活動(dòng)狀態(tài)。
public URL getDocumentBase();// 檢索表示該Applet運(yùn)行的文件目錄的對(duì)象。
public URL getCodeBase();// 獲取該Applet 代碼的URL地址。
public String getParameter(String name);// 獲取該Applet 由name指定參數(shù)的值。
public AppletContext getAppletContext();// 返回瀏覽器或小應(yīng)用程序觀察器。
public void resize(int width,int height);// 調(diào)整Applet運(yùn)行的窗口尺寸。
public void resize(Dimension d);// 調(diào)整Applet運(yùn)行的窗口尺寸。
public void showStatus(String msg);// 在瀏覽器的狀態(tài)條中顯示指定的信息。
public Image getImage(URL url); // 按url指定的地址裝入圖象。
public Image getImage(URL url,String name);// 按url指定的地址和文件名加載圖像。
public AudioClip getAudioClip(URL url);// 按url指定的地址獲取聲音文件。
public AudioClip getAudioClip(URL url, String name);// 按url指定的地址和文件名獲取聲音。
public String getAppletInfo();// 返回Applet應(yīng)用有關(guān)的作者、版本和版權(quán)方面的信息;
public String[][] getParameterInfo();
// 返回描述Applet參數(shù)的字符串?dāng)?shù)組,該數(shù)組通常包含三個(gè)字符串: 參數(shù)名、該參數(shù)所需值的類型和該參數(shù)的說(shuō)明。
public void play(URL url);// 加載并播放一個(gè)url指定的音頻剪輯。
public void destroy();//撤消Applet及其所占用的資源。若該Applet是活動(dòng)的,則先終止該Applet的運(yùn)行。
(1) Applet運(yùn)行狀態(tài)控制基本方法
Applet類中的四種基本方法用來(lái)控制其運(yùn)行狀態(tài):init()、start()、stop()、destroy()
init()方法
這個(gè)方法主要是為Applet的正常運(yùn)行做一些初始化工作。當(dāng)一個(gè)Applet被系統(tǒng)調(diào)用時(shí),系統(tǒng)首先調(diào)用的就是該方法。通常可以在該方法中完成從網(wǎng)頁(yè)向Applet傳遞參數(shù),添加用戶界面的基本組件等操作。
start()方法
系統(tǒng)在調(diào)用完init()方法之后,將自動(dòng)調(diào)用start()方法。而且,每當(dāng)用戶離開(kāi)包含該Applet的主頁(yè)后又再返回時(shí),系統(tǒng)又會(huì)再執(zhí)行一遍start()方法。這就意味著start()方法可以被多次執(zhí)行,而不像init()方法。因此,可把只希望執(zhí)行一遍的代碼放在init()方法中。可以在start()方法中開(kāi)始一個(gè)線程,如繼續(xù)一個(gè)動(dòng)畫(huà)、聲音等。
stop()方法
這個(gè)方法在用戶離開(kāi)Applet所在頁(yè)面時(shí)執(zhí)行,因此,它也是可以被多次執(zhí)行的。它使你可以在用戶并不注意Applet的時(shí)候,停止一些耗用系統(tǒng)資源的工作以免影響系統(tǒng)的運(yùn)行速度,且并不需要人為地去調(diào)用該方法。如果Applet中不包含動(dòng)畫(huà)、聲音等程序,通常也不必實(shí)現(xiàn)該方法。
destroy()方法
與對(duì)象的finalize()方法不同,Java在瀏覽器關(guān)閉的時(shí)候才調(diào)用該方法。Applet是嵌在HTML文件中的,所以destroty()方法不關(guān)心何時(shí)Applet被關(guān)閉,它在瀏覽器關(guān)閉的時(shí)候自動(dòng)執(zhí)行。在destroy()方法中一般可以要求收回占用的非內(nèi)存獨(dú)立資源。(如果在Applet仍在運(yùn)行時(shí)瀏覽器被關(guān)閉,系統(tǒng)將先執(zhí)行stop()方法,再執(zhí)行destroy()方法。
(2) Applet應(yīng)用的有關(guān)參數(shù)說(shuō)明
利用Applet來(lái)接收從HTML中傳遞過(guò)來(lái)的參數(shù),下面對(duì)這些參數(shù)作一簡(jiǎn)單說(shuō)明:
* CODE標(biāo)志
CODE標(biāo)志指定Applet的類名;WIDTH和HEIGHT標(biāo)志指定Applet窗口的像素尺寸。在APPLET語(yǔ)句里還可使用其他一些標(biāo)志。
* CODEBASE 標(biāo)志
CODEBASE標(biāo)志指定Applet的URL地址。Applet的通用資源定位地址URL,它可以是絕對(duì)地址 ,如www.sun.com。也可以是相對(duì)于當(dāng)前HTML所在目錄的相對(duì)地址,如/AppletPath/Name。如果HTML文件不指定CODEBASE 標(biāo)志,瀏覽器將使用和HTML文件相同的URL。
* ALT 標(biāo)志
雖然Java在WWW上很受歡迎,但并非所有瀏覽器都對(duì)其提供支持。如果某瀏覽器無(wú)法運(yùn)行Java Applet,那么它在遇到APPLET語(yǔ)句時(shí)將顯示ALT標(biāo)志指定的文本信息。
* ALIGN 標(biāo)志
ALIGN標(biāo)志可用來(lái)控制把Applet窗口顯示在HTML文檔窗口的什么位置。與HTML<LMG>語(yǔ)句一樣,ALIGN標(biāo)志指定的值可以是TOP、MIDDLE或BOTTOM。
* VSPACE與HSPACE 標(biāo)志
VSPACE和HSPACE標(biāo)志指定瀏覽器顯示在Applet窗口周圍的水平和豎直空白條的尺寸,單位為像素。如下例使用該標(biāo)志在Applet窗口之上和之下各留出50像素的空白,在其左和其右各留出25像素的空白:
* NAME 標(biāo)志
NAME標(biāo)志把指定的名字賦予Applet的當(dāng)前實(shí)例。當(dāng)瀏覽器同時(shí)運(yùn)行兩個(gè)或多個(gè)Applet時(shí),各Applet可通過(guò)名字相互引用或交換信息。如果忽略NAME標(biāo)志,Applet的名字將對(duì)應(yīng)于其類名。
* PARAM 標(biāo)志
通用性是程序設(shè)計(jì)所追求的目標(biāo)之一。使用戶或者程序員能很方便地使用同一個(gè)Applet完成不同的任務(wù)是通用性的具體表現(xiàn)。從HTML文件獲取信息是提高Applet通用性的一條有效途徑。
假設(shè)編制了一個(gè)把某公司的名字在屏幕上卷動(dòng)的Applet。為了使該Applet更加通用,則可以使該Applet從HTML文件獲取需要卷動(dòng)的文本信息。這樣,若想顯示另一個(gè)公司的名字,用不著修改Java Applet本身,只需修改HTML文件即可。
PARAM 標(biāo)志可用來(lái)在HTML文件里指定參數(shù),格式如下所示:
PARAM Name="name" Value="Liter"
Java Applet可調(diào)用getParameter方法獲取HTML文件里設(shè)置的參數(shù)值。