Image.createImage("/path.png"),路徑以 / 開頭表示 JAR 根目錄。打包時需將圖片置於 res/ 目錄,WTK 會自動納入 JAR。Image.createImage("file:///path.png"),需檔案連線權限。本文專注最常用的 JAR 內部資源方式。
MyImage。WTK_HOME/apps/ImageTest/src/MyImage.java。time.png,置於 WTK_HOME/apps/ImageTest/res/。import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.util.*;
public class MyImage extends MIDlet {
private Display display;
private Form show;
private String date = new Date().toString(); // 示範日期字串
public MyImage() {
display = Display.getDisplay(this);
show = new Form("");
show.append(new StringItem("DATE: ", date));
}
public void startApp() throws MIDletStateChangeException {
try {
// 從 JAR 載入圖片
Image img = Image.createImage("/time.png");
show.append(img); // Form 直接支援 Image 元件
} catch (Exception ex) {
ex.printStackTrace();
}
display.setCurrent(show);
}
public void pauseApp() {}
public void destroyApp(boolean unconditional) {}
}
Image.createImage("/time.png") 回傳 不可變圖像,安全可跨元件共享。Form.append(Image) 會自動建立 ImageItem,處理版面配置與捲動。IOException,務必 try-catch 避免 MIDlet 崩潰。class ImageCanvas extends Canvas {
private Image img;
public ImageCanvas() {
try { img = Image.createImage("/time.png"); }
catch (IOException e) { e.printStackTrace(); }
}
protected void paint(Graphics g) {
g.drawImage(img, getWidth()/2, getHeight()/2, Graphics.HCENTER|Graphics.VCENTER);
}
}
適用於需結合繪圖、動畫、觸控熱區的場景。
pngcrush、optipng 等工具無損壓縮。