一個 Applet 是一個運行在網(wǎng)頁瀏覽器上的 Java 程序。一個 Applet 可以使一個全功能的 Java 應(yīng)用程序因為它在處理上擁有整個 Java API。
在一個 Applet 和一個獨立的 Java 應(yīng)用程序間有一些重要的不同,包括以下方面:
- 一個 Applet 是繼承 java.applet.Applet 類的一個 Java 類。
- main() 方法不在 Applet 上被調(diào)用,并且一個 applet 類將不定義 main()。
- Applet 程序被設(shè)計嵌入到 HTML 頁面中。
- 當一個用戶查看一個帶有 applet 的 HTML 頁面,applet 的代碼將被下載到用戶的機器中。
- 需要 JVM 來查看一個 applet。JVM 可以是一個網(wǎng)頁瀏覽器的一個插件,也可以是單獨的運行環(huán)境。
- 用戶機器上的 JVM 創(chuàng)建了 applet 類的實例并且在 applet 的生命周期中調(diào)用不同的方法。
- Applets 有網(wǎng)頁瀏覽器實施的嚴格的安全規(guī)則。一個 applet 程序的安全性常常被稱作沙箱安全,這是將 applet 比作一個正在沙箱中的,必須遵守許多規(guī)則的孩子。
- 其他 applet 需要的類可以在一個單獨的 Java Archive(JAR) 文件中下載。
一個 Applet 的生命周期
Applet 類中的四個方法給了你構(gòu)建 applet 程序時的框架:
- init: 這個方法適用于你的 applet 程序所需要的任何初始化。它在 applet 標記中的參數(shù)標簽被處理后被調(diào)用。
- start: 這個方法在瀏覽器調(diào)用 init 方法后被自動調(diào)用。它也在無論何時使用者在去其他頁面后返回到包含 applet 的頁面時被調(diào)用。
- stop: 這個方法在使用者離開有 applet 所在的頁面時被自動調(diào)用。因此,它在同一個 applet 中能被重復(fù)調(diào)用。
- destroy: 這個方法僅當瀏覽器正常關(guān)閉時被自動調(diào)用。因為 applet 程序是生存在 HTML 頁面上的,你不應(yīng)該在使用者離開有 applet 的網(wǎng)頁后留下資源。
- paint: 在 start() 方法之后被立即調(diào)用,或是在 applet 需要在瀏覽器上重現(xiàn)它自身的任何時候。paint() 方法實際上是繼承自 java.awt。
一個 “Hello,World” Applet
以下是一個簡單的叫做 HelloWorldApplet.java 的 applet 程序:
import java.applet.*;
import java.awt.*;
public class HelloWorldApplet extends Applet
{
public void paint (Graphics g)
{
g.drawString ("Hello World", 25, 50);
}
}
這些引入的語句把類帶入我們的 applet 類的范圍內(nèi):
- java.applet.Applet.
- java.awt.Graphics.
沒有那些引入的語句,Java 編譯器將不會認出 applet 類所指的 Applet 和 Graphics 類。
Applet 類
每一個 applet 類都是 java.applet.Applet 類的延伸。基本的 Applet 類提供了一個派生的 Applet 類用來調(diào)用從瀏覽器獲取信息和服務(wù)的方法。
這還包括了做以下事情的方法:
- 獲得 applet 參數(shù)
- 獲得包含 applet 的 HTML 文件的網(wǎng)絡(luò)地址
- 獲得 applet 類目錄的網(wǎng)絡(luò)地址
- 在瀏覽器中打印狀態(tài)信息
- 獲取一個圖像
- 獲取一段音頻剪輯
- 播放一段音頻剪輯
- 調(diào)整 applet 的大小
此外,Applet 類通過觀察器和瀏覽器獲得有關(guān) applet 的信息和控制 applet 的執(zhí)行來提供一個接口。觀察者可能:
- 需要作者的信息,版本和 applet 的版權(quán)
- 需要 applet 識別的參數(shù)的描述
- 初始化 applet
- 銷毀 applet
- 開始 applet 的執(zhí)行
- 停止 applet 的執(zhí)行
調(diào)用一個 Applet 程序
一個 applet 可能被一個 HTML 文件中嵌入的指令文件調(diào)用并通過一個 applet 觀察器或者支持 Java 的瀏覽器查看文件。