import java.awt.*;
import java.applet.Applet;
public class HelloWorld extends Applet {
String text;
public void init() {
text = "Hello World";
this.setBackground(new Color(120, 180, 140));
}
public void paint(Graphics g) {
g.drawString(text, 25, 25);
}
}
註:原文 puvlic 為拼寫錯誤,已修正為 public。
<html>
<applet code="HelloWorld.class" width=200 height=150></applet>
</html>
| 方法 | 階段 | 調用時機 |
|---|---|---|
init() | 初始化 | Applet 加載時調用一次,完成資源初始化 |
start() | 運行 | init() 後、頁面可見時調用,可多次觸發 |
stop() | 停止 | 頁面不可見、瀏覽器最小化時調用 |
destroy() | 銷毀 | 瀏覽器關閉、Applet 卸載前調用一次,釋放資源 |
public class Test extends Applet {
public void init() {
this.add(new Button("Start"));
this.add(new Button("Stop"));
this.setBackground(Color.BLUE);
}
public void paint(Graphics g) {
g.drawString("Hello World!", 20, 20);
}
}
Applet 默認佈局管理器為 FlowLayout,繼承自 Panel → Container → Component,故可直接調用 add()、setBackground() 等方法。
java.version、os.name)簽名 Applet 可通過用戶授權提升權限,但現代瀏覽器已全面棄用 NPAPI 插件支持。
<applet
[archive = archiveList] <!-- JAR 包列表 -->
code = appletFile.class <!-- 主類文件 -->
width = pixels <!-- 寬度 -->
height = pixels <!-- 高度 -->
[codebase = codebaseURL] <!-- 類文件基礎路徑 -->
[alt = alternateText] <!-- 不支持 Java 時顯示 -->
[name = appletInstanceName] <!-- 實例名稱,可作參數傳遞 -->
[align = alignment] <!-- 對齊方式 -->
[vspace = pixels] <!-- 垂直間距 -->
[hspace = pixels] <!-- 水平間距 -->
>
[<param name = val1 value = value1/>]
[<param name = val2 value = value2/>]
</applet>
<html>
<applet code="Test.class" width=200 height=100>
<param name="topic" value="Computer Science" />
</applet>
</html>
public class Test extends Applet {
private String topic;
public void init() {
topic = this.getParameter("topic"); // 注意:原文 getParammeter 拼寫錯誤
this.setBackground(new Color(120, 180, 140));
}
public void paint(Graphics g) {
g.drawString(topic, 25, 25);
}
}
歷史注記:Applet 技術自 Java 9 起被標記為废棄,Java 11 移除。現代 Web 開發請使用 JavaScript/WebAssembly 替代方案。