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

Java 入門筆記:Applet 程式設計完整指南

     編輯:Java 相關知識

1. Hello World Applet

import java.awt.Graphics;
public class HelloWorldApplet extends java.applet.Applet {
    public void paint(Graphics g) {
        g.drawString("Hello world!", 5, 25);
    }
}

關鍵點

  • 繼承 java.applet.Applet。
  • paint() 必須 public。
  • 使用 Graphics 需 import java.awt.Graphics。
  • 無 main(),不可獨立執行,需由瀏覽器或 appletviewer 載入自動呼叫 paint()。

HTML 嵌入

<applet code="HelloWorldApplet.class" width="150" height="25"
    codebase="https://www.example.com/applets/">
</applet>
  • code:類別檔名稱(同目錄可省路徑)。
  • codebase:指定類別檔所在基底 URL。
  • width/height:標準屬性。

若瀏覽器無法執行,可用 appletviewer hello.html 測試(忽略 HTML、直接執行 Applet)。

2. Applet 參數傳遞

<applet code="MyApplet.class" width="300" height="200">
    <param name="font" value="Arial">
    <param name="size" value="14">
</applet>

在 init() 中取得:String font = getParameter("font");。回傳 String,無參數回傳 null,需自行型別轉換。

3. Applet 生命週期五大方法

方法呼叫時機備註
init()Applet 載入時相當於 application 的 main,只執行一次
start()init() 結束後可重複呼叫(如 stop 後重啟)
stop()頁面離開或瀏覽器最小化與 start 對應
destroy()Applet 卸載前與 init 對應,釋放資源
paint(Graphics g)初始化、視窗移動、重繪需求時頻繁呼叫

輔助方法:repaint() → 呼叫 update() → 清除螢幕 → 呼叫 paint()。動畫三要素:paint/repaint/update。update 中常用 g.clipRect() 限制重繪區域。

4. Applet 中使用執行緒

動畫或耗資源任務必須用執行緒,避免阻塞事件派發執行緒。

import java.awt.Graphics;
import java.util.Date;
public class DigitalClock extends java.applet.Applet implements Runnable {
    Date theDate;
    Thread runner;
    public void start() {
        if (runner == null) {
            runner = new Thread(this);
            runner.start();
        }
    }
    public void stop() {
        if (runner != null) {
            runner.stop(); // 已棄用,建議用旗標控制迴圈結束
            runner = null;
        }
    }
    public void run() {
        while (true) {
            theDate = new Date();
            repaint();
            try { Thread.sleep(1000); }
            catch (InterruptedException e) {}
        }
    }
    public void paint(Graphics g) {
        g.drawString(theDate.toString(), 10, 50);
    }
}

說明

  1. 實作 Runnable,須實作 run()。
  2. new Thread(this) 傳入 Applet 實例(即 Runnable 目標)。
  3. start() 啟動執行緒,run() 週期性更新資料並呼叫 repaint() 觸發 paint()。
  4. stop() 結束執行緒(現代寫法建議用 volatile boolean running 旗標控制迴圈)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved