Java Applet簡介
最近要使用worldwind java sdk做Applet開發,看了些Applet的資料,為了防止忘記,記錄如下:
applet是通過<applet>標籤嵌入到html中來使用,因此<applet>標籤應該至少包含下面這些資訊:
applet和Java 2D程式有很多相關的地方,下面是Applet繼承層次圖
從中可以看出,applet是Panel的一個子類,可以作為Container來使用。下面是一個HTML中的一個典型的Applet標籤:<applet code = "HelloWorld.class" width = "800" height = "600"></applet>applet聲明周期Applet與Panel的不同之處在於Applet擁有生命週期控制。Applet類提供了四種方法,用於生命週期控制,下面是這四種方法的簡單介紹:
當初始化applet時,需要調用該方法。applet可以有預設的建構函式,但習慣上是在init方法中而不是建構函式中進行全部的初始化工作。
該方法會在瀏覽器調用init方法之後執行。當使用者從其他頁面返回到包含applet的頁面時,該方法也會執行。說明start方法可以執行多次,與之相比,init方法只能執行一次。start方法經常為applet重啟一個線程,例如,恢複動畫。如果applet在使用者離開當前頁面時沒有什麼需要掛起的,就沒有必要實現該方法(或stop方法)。
該方法在使用者離開包含applet的頁面時被自動調用。
該方法只有在瀏覽器正常關閉時才會被調用。applet的HTML標記和屬性下面是一個最簡單的形式使用applet的例子:<applet code="HelloWorld.class" width="400" height="300"></applet>可以看出,code屬性指明了類檔案名稱,並且必須包含.class副檔名;width和height屬性確定容納applet視窗大小。兩者都是以像素為單位。用於編碼的applet屬性下面的屬性用於高速瀏覽器如何定位applet代碼:
這個屬性給出applet類檔案的名稱。若指定codebase,則路徑是相對於codebase的;若沒有指定codebase,則路徑是相對於當前頁面的。路徑名必須與applet的包名匹配。例如,如果applet的類在包com.demo包中,則該屬性應該是code="com.demo.HelloWorld.class"或"com/demo/HelloWorld.class"
這個可選屬性指出用於定位類檔案的url。這個url可以是決定路徑,也可以是相對路徑,相對路徑的一個樣本如下:AProject/|----Page.html|----Applets/ |----HelloWorld.class可以在Page.html中這樣寫<applet>標籤:<applet code="HelloWorld.class" codebase="Applets" width="800" height="600"></applet>
這個可選屬性列出Java封存檔案、包含類檔案及applet需要的其他資源檔。這些檔案是applet在載入前從伺服器獲得的。這種技術明顯加快了載入過程的速度,這是因為只需要一個HTTP請求來載入包含多個小檔案的JAR檔案。JAR檔案之間使用逗號分隔。例如:<applet code="HelloWorld.class" archive="Helllo.jar, demo/test.jar" width="800" height="600"></applet>