概述
| 導航 使用者介面 主題: |
Java 小程式是以 Java 位元組碼形式交付的小程式。Java 小程式可以使用 Java 虛擬機器 (JVM) 在 Web 瀏覽器中執行,也可以在 Oracle 的 AppletViewer 中執行,AppletViewer 是一款用於測試小程式的獨立工具。Java 小程式在 1995 年 Java 語言的第一個版本中引入。Java 小程式通常用 Java 程式語言編寫,但也可以用其他編譯成 Java 位元組碼的語言編寫,例如 Jython。
小程式用於為無法由 HTML 提供的 Web 應用程式提供互動式功能。由於 Java 的位元組碼是平臺無關的,Java 小程式可以被 Windows、Unix、Mac OS 和 Linux 等許多平臺的瀏覽器執行。有像 applet2app 這樣的開源工具,可以用來將小程式轉換成獨立的 Java 應用程式/Windows 可執行檔案。這具有在離線模式下執行 Java 小程式而無需 Internet 瀏覽器軟體的優勢。
Java 小程式越來越少地使用。在 2018 年,您只能從 Microsoft Edge 的“相容模式”和 Firefox 擴充套件支援版本中使用它。在可能的情況下,您最好使用 JavaScript。
您至少需要建立兩個東西:一個 HTML 頁面和一個 Java 類。它可以在本地資料夾中完成,無需執行伺服器,但更難理解什麼是本地,什麼是遠端。HTML 頁面必須使用 <applet/> 標記呼叫 Java 類。
程式碼清單 9.3:HelloWorld.html
<!DOCTYPE html>
<html>
<body>
HTML content before the applet.<applet code="HelloWorld" height="40" width="200"></applet>HTML content after the applet.
</body>
</html>
|
將此檔案儲存在一個資料夾中。由於 <applet/> 標記正在呼叫一個名為 HelloWorld 的 Java 類,因此我們的類應該被命名為 HelloWorld.java
程式碼清單 9.4:HelloWorld.java
import java.applet.Applet;
import java.awt.Graphics;
public class HelloWorld extends Applet {
/**
* Print a message on the screen.
*/
public void paint(Graphics g) {
g.drawString("Hello, world!", 20, 10);
}
}
|
儲存此檔案並在同一個資料夾中編譯該類。現在讓我們在瀏覽器中開啟網頁。

我們很清楚地看到,“Hello, world!”的渲染方式與頁面中的其他內容不同。
- 另請參見 applet 標記。
要將 applet 嵌入 HTML 頁面,您需要插入 <applet/> 標記。此標記可以具有多個屬性
code* |
要呼叫的主類的名稱。它可以是類名,帶或不帶 .class。 |
height
|
applet 內容在網頁上渲染區域的高度。 |
width
|
applet 內容在網頁上渲染區域的寬度。 |
archive
|
具有 .jar 副檔名的壓縮 zip 檔案的名稱。檔案可以包含執行 applet 所需的所有類。Applet 通常以這種形式交付,以最大程度地減少下載時間。 |
帶有 * 的屬性是必需的。
關於 applet 標籤的使用已經有一些討論,但它仍然可以用於入門,並且在現實世界中也能正常工作。
Applet 的構建方式與其他類或主程式不同。入口點不同,主類應該擴充套件 Applet 類。Applet 類有四個方法可以由瀏覽器呼叫,您可以重新定義
init()
|
當瀏覽器第一次載入 applet 時呼叫。它只被瀏覽器執行呼叫一次。 |
start()
|
當 applet 開始執行時呼叫。每當使用者訪問網頁時,它都會被呼叫。 |
stop()
|
當 applet 停止執行時呼叫。每當使用者訪問網頁時,它都會被呼叫。 |
destroy()
|
當用戶退出瀏覽器時呼叫。它只被瀏覽器執行呼叫一次。 |
paint()
|
當 applet 需要渲染時呼叫,例如,當瀏覽器大小發生改變時。 |
前四個方法定義了 applet 的生命週期。至少要重新定義 init() 或 paint()。HTML applet 標籤可以嵌入 applet 原始碼中,以允許 applet 直接由簡單的 applet 檢視器執行,而無需 .html 檔案。通常,applet 標籤緊隨匯入語句之後。它必須用 /* */ 註釋括起來
程式碼部分 9.10:MyApplet 註釋
/*
<applet code="MyApplet.class"> </applet>
*/
|