Applet 顯示圖片涉及資源定位、異步加載、繪製回調等關鍵點。本文系統梳理六大步驟,並提供可直接運行的完整示例代碼。
public class MyApplet extends Applet implements ImageObserver,接收圖片加載進度通知。getDocumentBase():HTML 頁面所在目錄。getCodeBase():Applet class 文件所在目錄。img = getImage(baseURL, "relative/path/img.gif"),立即返回,異步加載。paint(Graphics g) 中調用 g.drawImage(img, x, y, this),最後一個參數傳入 ImageObserver(即 this),當圖片準備好自動觸發重繪。getClass().getResourceAsStream("/image.gif") 讀取流 → 字節數組 → createImage(bytes)。public void init() {
setBackground(Color.white);
imgPath = "img/test.gif"; // 相對路徑
}
public void paint(Graphics g) {
URL imgURL = getDocumentBase();
img = getImage(imgURL, imgPath);
g.drawImage(img, 100, 100, this); // 異步繪製,ImageObserver 自動重繪
}
/ 開頭、是否簽名導致安全限制。createImage(width,height) 離屏繪圖再一次性 drawImage)。注意:Applet 技術已被主流瀏覽器棄用(Java 9 標記移除,Java 11 徹底移除),新項目請改用 Web 技術(Canvas/WebGL/WebAssembly)或 JavaFX/WebStart 替代方案。