Java 語言憑藉其物件導向、跨平台、安全性與多執行緒等特性,迅速成為 90 年代最熱門的程式設計語言之一。其抽象視窗工具套件(AWT)提供了豐富的 GUI 開發類別,讓開發者能輕鬆建立跨平台的友善介面應用程式。然而,早期的 Java 版本尚未原生支援漢字顯示,這對中文用戶構成了不小的阻礙。本文將示範如何在支援 Java 的中文 Windows 95 平台上,利用 Applet 技術設計漢字動畫程式。
Java 程式主要分為兩類:由 Java 直譯器直接執行的應用程式,以及必須嵌入網頁、由相容瀏覽器(如 HotJava、Netscape Navigator)執行的 Applet。Applet 擁有固定的程式框架,主類別至少需實作以下五種方法之一:
本範例實作了 start()、stop() 與 paint() 三個方法。
實際應用中常需同時處理多項任務,如圖形顯示與使用者輸入。Java 的多執行緒機制允許建立專門的執行緒處理圖形繪製,主執行緒則負責接收輸入,兩者並行執行。建立執行緒需實作 Runnable 介面的 run() 方法,執行系統透過呼叫此方法來驅動執行緒行為。
// 漢字動畫 Applet
// Written by LJY 1997.6.20
import java.awt.*;
public class myAnimator extends java.applet.Applet implements Runnable {
int delayTime = 100; // 執行緒休眠時間
int flag = 0;
Thread animator; // 定義執行緒
Font f = new Font("TimesRoman", Font.BOLD, 48); // 建立字型實例
String name = "漢字動畫演示";
public void start() {
animator = new Thread(this); // 建立執行緒
animator.start(); // 啟動執行緒
}
public void run() { // 執行緒主體
while (animator != null) {
repaint(); // 觸發重繪
try {
Thread.sleep(delayTime); // 執行緒休眠
} catch (InterruptedException e) {
break;
}
}
}
public void stop() {
animator.stop(); // 停止執行緒
animator = null;
}
public void paint(Graphics g) {
g.setFont(f); // 設定字型大小
switch (flag) {
case 0: g.setColor(Color.red); break;
case 1: g.setColor(Color.green); break;
case 2: g.setColor(Color.yellow); break;
case 3: g.setColor(Color.blue); break;
}
g.drawString(this.name, 5, 50); // 輸出漢字字串
flag++;
if (flag > 3) flag = 0;
}
}
為了執行此 Applet,必須將其嵌入網頁。以下為簡單的 HTML 檔案 myAnimator.html:
<applet code="myAnimator.class" width=300 height=80> </applet>
在中文 Windows 95 的 DOS 模式下編譯:
c:\hotjava\bin\javac myAnimator.java
編譯通過後產生 myAnimator.class 位元碼檔案,再使用 appletviewer 檢視:
c:\hotjava\bin\appletviewer myAnimator.html
此範例展示了在早期 Java 環境下如何克服中文顯示限制,結合多執行緒與 AWT 繪圖功能,實現簡單而生動的漢字動畫效果,為後續更複雜的中文圖形應用奠定基礎。