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

Applet 元件化應用指南:在獨立 Java 應用程式中加載與運行 Applet 的兩種完整模式

     編輯:Java 相關知識

Applet 不僅能嵌入網頁,本質上是 java.awt.Panel 子類,繼承自 Container 與 Component,具備完整的事件處理與容器嵌入能力。本文示範兩種在獨立 Java 應用程式中加載 Applet 的完整模式,打破「Applet 僅限瀏覽器」的迷思。

Applet 類別體系定位

java.applet.Applet
    ↑ extends
java.awt.Panel
    ↑ extends
java.awt.Container
    ↑ extends
java.awt.Component

因此 Applet 就是一個可嵌入任何容器、可處理事件的輕量級元件。

模式一:主程式 main() 直接啟動 Applet

在 main() 完成實例化、初始化、啟動,並嵌入 Frame 顯示。


public class SimpleApplet extends Applet {
    public static void main(String[] args) {
        Frame f = new Frame("A frame!");
        SimpleApplet applet = new SimpleApplet();
        applet.init();    // 必須手動調用
        applet.start();   // 必須手動調用
        f.add("Center", applet);
        f.pack();
        f.show();         // JDK 1.1+ 建議用 setVisible(true)
    }
    public void init() { add(new Label("I am a Component")); }
}

關鍵點:瀏覽器自動調用的 init()、start()、stop()、destroy() 生命週期方法,在獨立應用中必須手動管理。

模式二:普通類別載入多個 Applet 實例

Applet 不必是程式入口,任何類別皆可載入、安裝、啟動多個 Applet 實例。


// SimpleApplet1.java
public class SimpleApplet1 extends Applet {
    public void init() { add(new Label("I am a Component")); }
}

// Multi.java
public class Multi extends Frame {
    public static void main(String[] args) {
        Multi ma = new Multi("frame");
        ma.setSize(new Dimension(500, 300));
        ma.setLayout(new GridLayout(2, 1));
        ma.launchApplet(); // 載入第一個
        ma.launchApplet(); // 載入第二個
        ma.setVisible(true);
    }
    public Multi(String s) { super(s); }
    void launchApplet() {
        Applet theApplet = new SimpleApplet1();
        add(theApplet);
        theApplet.init();
        theApplet.start();
    }
}

編譯運行順序:

  1. javac SimpleApplet1.java
  2. 將 SimpleApplet1.class 複製至 Multi.java 目錄
  3. javac Multi.java
  4. java Multi

實務應用價值

  • 既有 Applet 遷移桌面應用:無需重寫 UI 邏輯,直接嵌入 Swing/AWT 視窗。
  • 可複用元件庫:將成熟的 Applet 元件(圖表、編輯器、遊戲面板)納入桌面應用生態。
  • 測試驗證便利:脫離瀏覽器獨立測試 Applet 行為,支援自動化測試腳本。

注意事項

  • Applet 安全沙箱限制在獨立應用中不生效,若代碼依賴沙箱行為需自行模擬。
  • 生命週期管理完全由宿主程式負責,需妥善處理 stop()/destroy() 釋放資源。
  • 現代專案建議優先考慮 JavaFX/WebView 或 Swing 重寫,Applet 技術已停止更新。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved