J2ME 裝置字體資源極有限,Font 僅能使用系統預設字型,無法載入自訂字體檔。透過靜態工廠方法取得實例:
Font font = Font.getFont(int face, int style, int size);
三個參數皆為常數組合,具體像素大小由實現決定。
FACE_MONOSPACE:等寬字體,適合程式碼、對齊顯示。FACE_PROPORTIONAL:比例字體,閱讀較舒適。FACE_SYSTEM:系統預設字體,最保險的選擇。STYLE_PLAIN:正常STYLE_BOLD:粗體STYLE_ITALIC:斜體STYLE_UNDERLINED:底線STYLE_BOLD | STYLE_ITALIC(粗斜體)、STYLE_UNDERLINED | STYLE_BOLD(粗體底線)SIZE_SMALL、SIZE_MEDIUM、SIZE_LARGE 三級,實際像素高度因裝置而異。// 取得系統預設字體
Font def = Font.getDefaultFont();
// 在 paint(Graphics g) 中取得/設定當前字體
Font current = g.getFont();
g.setFont(myFont);
// MIDP 2.0:List 可逐行設定字體
list.setFont(0, myFont); // 第 0 行
J2ME 無獨立 Color 類別,直接以 24-bit RGB 整數表示顏色:0x00RRGGBB。三原色分量範圍 0~255。
| 顏色 | 十進位 (R,G,B) | 十六進位 |
|---|---|---|
| 紅 | (255,0,0) | 0x00FF0000 |
| 綠 | (0,255,0) | 0x0000FF00 |
| 藍 | (0,0,255) | 0x000000FF |
| 白 | (255,255,255) | 0x00FFFFFF |
| 黑 | (0,0,0) | 0x00000000 |
| 黃 | (255,255,0) | 0x00FFFF00 |
| 青 | (0,255,255) | 0x0000FFFF |
| 洋紅 | (255,0,255) | 0x00FF00FF |
// 取得當前繪圖顏色(回傳 0x00RRGGBB)
int color = g.getColor();
// 設定顏色:單一整數
g.setColor(0x00FF0000); // 紅
// 設定顏色:三分量
g.setColor(255, 0, 0); // 同樣是紅
// 後續繪圖操作(drawString, fillRect, drawLine...)將使用此顏色
FACE_PROPORTIONAL,若 getFont() 回傳的字體特徵不符預期(可用 getFace()、getStyle()、getSize() 檢查),改用 FACE_SYSTEM。Font.getHeight()、stringWidth(str) 動態計算版面,適應不同解析度。