首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java Applet 基礎知識完整指南:生命週期、參數傳遞與部署詳解

     編輯:Java 相關知識

什麼是 Java Applet?

  • 以 Java 語言編寫的小型應用程式,嵌入 HTML 頁面
  • 由支援 Java 的瀏覽器 (舊版 IE/Netscape) 或 appletviewer 下載執行
  • 客戶端執行,不受網路頻寬限制,提供豐富互動/多媒體效果
  • 包含 Applet 的頁面稱為「Java-powered 頁面」

HTML 部署標籤:<applet> 必備屬性

<applet
    code="AppletClassName.class"      <!-- 位元碼檔名 -->
    codebase="URL"                   <!-- 程式碼基底路徑 (相對/絕對) -->
    width="300" height="200"         <!-- 顯示區域尺寸 (像素) -->
    name="instanceName"              <!-- 實例名稱 (多 Applet 通訊用) -->
    align="middle"                   <!-- 對齊: top/middle/bottom -->
    vspace="50" hspace="25"          <-- 垂直/水平邊距 -->
    alt="替代文字"                    <-- 不支援 Java 時顯示 -->
>
    <param name="參數名" value="參數值"> <!-- 傳遞參數 -->
</applet>

Applet 核心類別:java.applet.Applet

所有 Applet 必須繼承 Applet (間接繼承 Panel → Container → Component)。

生命週期四大方法 (模板方法模式)

方法觸發時機執行次數典型用途
init()Applet 首次載入一次初始化:讀參數、建立 UI 組件、啟動資源
start()init() 後、頁面重新顯示多次啟動動畫執行緒、恢復音樂、重新連線
stop()離開頁面/最小化多次暫停執行緒、停止音樂、釋放非關鍵資源
destroy()瀏覽器關閉/卸載一次釋放非記憶體資源 (原生連線、檔案控制代碼)

關鍵差異:init() 僅一次,start()/stop() 隨頁面可見性多次觸發。

常用實用方法

完整開發流程範例:HelloWorld

1. 原始碼 HelloWorld.java

import java.awt.*;
import java.applet.*;

public class HelloWorld extends Applet {
    public void paint(Graphics g) {
        g.drawString("Hello World!", 5, 35);
    }
}

2. 編譯

javac HelloWorld.java
→ 產生 HelloWorld.class

3. HTML 頁面 HelloWorld.html

<HTML>
<TITLE>HelloWorld Applet</TITLE>
<APPLET CODE="HelloWorld.class" WIDTH=200 HEIGHT=100>
</APPLET>
</HTML>

4. 執行方式

  • appletviewer HelloWorld.html (開發測試)
  • 瀏覽器開啟 file:///path/HelloWorld.html (需支援 Java 外掛)

參數傳遞機制:提升通用性

HTML 傳參:<param name="company" value="Acme Inc.">

Java 取參:String company = getParameter("company");

優點:修改 HTML 即可改變行為,無需重新編譯 Java 代碼。

Applet 限制與沙箱模型 (安全性)

  • 預設無法讀寫本地檔案、啟動程式、連接非來源主機、載入本地庫
  • 簽名 Applet (JAR 簽名 + 用戶授信) 可突破部分限制
  • Java 2 Security: 細粒度權限控制 (policy 檔案)

現代替代技術 (Applet 已被淘汰)

Java 9 標記棄用,Java 11 移除,瀏覽器全面停支援。

方法功能
getParameter(String name)取得 HTML <param> 值
getCodeBase()取得 Applet 程式碼 URL (載入資源基準)
getDocumentBase()取得 HTML 文件 URL
getImage(URL, String)載入圖片 (非阻塞)
getAudioClip(URL, String)載入聲音
showStatus(String)瀏覽器狀態列顯示訊息
resize(int, int)調整 Applet 顯示區域
getAppletContext()取得瀏覽器環境 (互訪其他 Applet、開啟連結)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
需求現代替代方案
跨平台桌面 GUIJavaFX (獨立部署、原生打包、WebView 嵌入網頁)
Web 互動/動畫HTML5 Canvas + JS、WebGL、CSS Animation
舊 Applet 遷移Java Web Start (JNLP) 過渡 → 全面改 Web/JavaFX
企業內部舊系統IE 模式/舊瀏覽器維護 (風險極高,儘快重寫)