首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2ME

J2ME Font 與 Color 完整設定指南:從字體構造到顏色編碼

     編輯:J2ME

一、Font 字體設定:沒有構造函數怎麼辦?

J2ME javax.microedition.lcdui.Font 無公共構造函數,必須透過靜態工廠方法 Font.getFont(int face, int style, int size) 取得實例。

1. 三大參數詳解

參數常量說明
face
字體外觀
Font.FACE_SYSTEM 系統預設字體(最保險)
Font.FACE_MONOSPACE 等寬字體,適合代碼/表格
Font.FACE_PROPORTIONAL 比例字體,視覺更自然
style
字體風格
Font.STYLE_PLAIN 常規
Font.STYLE_BOLD 粗體
Font.STYLE_ITALIC 斜體
Font.STYLE_UNDERLINED 底線(可與前三者 | 組合)
size
字體大小
Font.SIZE_SMALL 小號
Font.SIZE_MEDIUM 中號(預設)
Font.SIZE_LARGE 大號

2. 組合風格範例

// 粗體 + 斜體 + 系統字體 + 小號
Font font = Font.getFont(
    Font.FACE_SYSTEM,
    Font.STYLE_BOLD | Font.STYLE_ITALIC,
    Font.SIZE_SMALL
);

3. 實際繪製流程

// 初始化(建議在構造器或 init() 中一次性完成)
Font font = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_SMALL);

// Canvas.paint() 中使用
public void paint(Graphics g) {
    String str = "Welcome the Java world!";
    g.setFont(font);
    g.drawString(str, getWidth()/2, MENU_Y, Graphics.TOP | Graphics.HCENTER);
}

4. 進階用法:List 逐行設定字體 (MIDP 2.0)

List list = new List("Menu", List.IMPLICIT);
list.append("Item 1", null);
list.append("Item 2", null);
Font f = Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_ITALIC, Font.SIZE_MEDIUM);
list.setFont(0, f);  // 僅第 0 行套用斜體

二、Color 顏色設定:無 Color 類怎麼表示?

J2ME 沒有 Color 類,顏色直接以 32 位整數 表示,兩種等價寫法:

方式語法範例(白色)備註
十六進制 g.setColor(0xRRGGBB) g.setColor(0xFFFFFF) 最高位 0x00 忽略,直接寫 0xRRGGBB
RGB 分量 g.setColor(r, g, b) g.setColor(255, 255, 255) 各分量 0~255

常用顏色速查表

int BLACK   = 0x000000;
int WHITE   = 0xFFFFFF;
int RED     = 0xFF0000;
int GREEN   = 0x00FF00;
int BLUE    = 0x0000FF;
int GRAY    = 0x808080;
int LIGHT_GRAY = 0xCCCCCC;
int DARK_GRAY  = 0x444444;

Canvas 中應用


public void paint(Graphics g) {
    // 方式一:十六進制
    g.setColor(0xFF0000);  // 紅色
    g.fillRect(10, 10, 50, 30);

    // 方式二:RGB
    g.setColor(0, 255, 0); // 綠色
    g.drawString("Hello", 10, 50, Graphics.TOP | Graphics.LEFT);
}

三、效能與相容性提醒

  • Font 實例復用:全程僅建立幾個 Font 物件,避免在 paint() 中重複 getFont()。
  • 字體可用性檢測:部分低端機不支援 FACE_PROPORTIONAL 或 STYLE_UNDERLINED,發布前需真機測試回退策略。
  • 顏色深度:舊裝置可能僅 65K 色 (16-bit),24-bit 彩色會自動抖動;大面積漸建議用圖片替代。
  • 避免在 paint() 中 new 物件:顏色整數、Font 參考均為基本型別/不可變物件,直接使用零分配。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved