程式庫通常依功能組織。Java 標準庫中的 String 和 Vector 即屬此類。另一些庫專為建構其他庫而設計,提供應用程式框架——透過繼承框架類別並覆寫特定方法,框架會在適當時機呼叫這些方法。Applet 正是利用此應用程式框架建構而成。
| 方法 | 作用 |
|---|---|
| init() | Applet 首次建立時呼叫,執行一次性初始化 |
| start() | Applet 進入瀏覽器可視區域時呼叫,啟動常規操作(如被 stop() 停用的執行緒);init() 之後也會呼叫 |
| paint() | Component 基類方法(繼承三層)。作為 update() 一部分被呼叫,負責在 Applet 畫布上繪圖 |
| stop() | Applet 移出瀏覽器可視區域時呼叫,關閉耗資源操作;destroy() 前也會呼叫 |
| destroy() | Applet 從頁面卸載時呼叫,釋放資源 |
當 Component 決定需要更新時(如重新顯示、被其他視窗遮蓋後恢復),會呼叫 update()(定義於 Component),後者會清理畫布並呼叫 paint()。paint() 接收 Graphics 物件參數,代表可繪製的表面區域,確保繪圖不超出 Applet 邊界。
Graphics 提供豐富繪圖操作:幾何圖形、圖片、文字等。最常用的是 drawString(),需指定字串與起始座標(像素單位),雖不同機器顯示大小不同,但具可攜性。
//: Applet1.java
// Very simple applet
package c13;
import java.awt.*;
import java.applet.*;
public class Applet1 extends Applet {
public void paint(Graphics g) {
g.drawString("First applet", 10, 10);
}
} ///:~
注意此 Applet 無 main() 方法,所有啟動邏輯封裝於框架中,初始化碼置於 init()。
<applet code=Applet1 width=200 height=200> </applet>
code 指定 .class 檔名,width/height 設定初始尺寸(像素)。其他可用屬性:codebase(類別基底路徑)、align(對齊)、name(Applet 間通訊識別碼)、<param> 傳遞參數。