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

Java 文字繪製基礎:Graphics.drawString() 完整範例與 Unicode 支援說明

     編輯:Java 相關知識

核心 API

java.awt.Graphics.drawString(String str, int x, int y):在座標 (x, y) 繪製字串 str (基準線左下角)。

最簡範例:ghq.java

import java.awt.*;
import java.applet.*;

public class ghq extends Applet {
    String text = "ghq is a student!";

    public void paint(Graphics g) {
        g.drawString(text, 20, 20); // 座標 (20, 20) 顯示文字
    }
}

中文/Unicode 支援

  • Java 內部使用 UTF-16 (每字元 16 bits / 2 bytes),完整支援 Unicode
  • 將字串改為 "你好!歡迎參觀!" 即可正常顯示中文
  • 若瀏覽器顯示亂碼,通常是瀏覽器 Bug (如 IE 4.0) 或字體缺失,建議使用 IE 5.0+ / Netscape / 現代瀏覽器

與 C 語言字元模型差異

進階繪圖技巧

// 設定字體
g.setFont(new Font("SansSerif", Font.BOLD, 16));

// 設定顏色
g.setColor(Color.BLUE);

// 取得字串寬高 (置中/對齊用)
FontMetrics fm = g.getFontMetrics();
int strWidth = fm.stringWidth(text);
int strHeight = fm.getHeight();
int x = (getWidth() - strWidth) / 2;
int y = (getHeight() + fm.getAscent()) / 2;
g.drawString(text, x, y);

// 繪製多行文字
String[] lines = text.split("\n");
for (int i = 0; i < lines.length; i++) {
    g.drawString(lines[i], x, y + i * fm.getHeight());
}

現代環境提示

Applet 已淘汰。現代 Java 圖形繪製請使用:

  • JavaFX:Text 節點、Canvas + GraphicsContext
  • Swing:JComponent.paintComponent(Graphics) 覆寫
  • AWT:Canvas.paint(Graphics) (較舊)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
特性Java (char / String)C (char / char*)
位元寬度16 bits (UTF-16 代碼單元)8 bits (通常 ASCII/擴展)
中文支援原生支援需多位元組字元集 (MBCS) / Unicode 庫
字串結構不可變物件以 \0 結尾的位元組陣列