J2ME Font 類別提供低階介面字體控制,但受限於裝置僅支援系統預設字體。本文詳細說明字體建立、三大屬性組合、常用操作與 MIDP 2.0 List 字體設定新功能。
Font font = Font.getFont(int face, int style, int size);
所有參數必須使用系統定義常數,不可傳入任意數值。不同手機實際渲染大小/外觀可能不同。
| 常數 | 說明 |
|---|---|
Font.FACE_MONOSPACE | 等寬字體(程式碼、對齊內容適用) |
Font.FACE_PROPORTIONAL | 比例字體(一般閱讀內容適用) |
Font.FACE_SYSTEM | 系統預設字體(最保險選擇) |
可用位元或 | 組合:
| 常數 | 效果 |
|---|---|
Font.STYLE_PLAIN | 普通(預設) |
Font.STYLE_BOLD | 粗體 |
Font.STYLE_ITALIC | 斜體 |
Font.STYLE_UNDERLINED | 底線 |
STYLE_BOLD | STYLE_ITALIC | 粗斜體 |
STYLE_UNDERLINED | STYLE_BOLD | 底線粗體 |
STYLE_UNDERLINED | STYLE_ITALIC | 底線斜體 |
STYLE_UNDERLINED | STYLE_ITALIC | STYLE_BOLD | 底線粗斜體 |
| 常數 | 相對大小 |
|---|---|
Font.SIZE_SMALL | 小 |
Font.SIZE_MEDIUM | 中(預設) |
Font.SIZE_LARGE | 大 |
// 1. 取得系統預設字體
Font defaultFont = Font.getDefaultFont();
// 2. 在 paint() 中取得/設定 Graphics 目前字體
Font current = g.getFont();
g.setFont(myCustomFont);
// 3. 建立自訂字體:系統字體、粗體、大號
Font titleFont = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_LARGE);
// 4. MIDP 2.0 List 元件逐行設定字體
list.setFont(0, titleFont); // 第 0 行套用 titleFont
face/style,系統會自動替換最接近字體,不會拋出例外font.getHeight()、font.stringWidth(str)、font.charWidth(ch) 進行版面配置計算