JavaTM 2 Platform
Standard Ed. 6

java.awt
類別 Font

java.lang.Object
  繼承者 java.awt.Font
所有已實作的介面:
Serializable
直接已知子類別:
FontUIResource

public class Font
extends Object
implements Serializable

Font 類別表示字體,可以使用它以可見方式呈現文本。字體提供將字元 序列映射到字形 序列所需要的資訊,以便在 Graphics 物件和 Component 物件上呈現字形序列。

字元和字形

字元 是表示項的符號(如字母、數字或具有抽象意義的標點)。例如,'g'G 的拉丁小寫字母)是一個字元。

字形 是用來呈現字元或字元序列的一種形狀。在簡單的書寫系統(如拉丁文)中,通常一個字形就表示一個字元。但在一般情況下,字元和字形並沒有一對一的對應關係。例如,字元 'á' A 的帶重音符號的拉丁小寫字母 可以由兩個字形表示:一個是 'a',一個是 '´'。另一方面,兩字元的字元串 "fi" 可以由單個字形 "fi" 連字表示。在複雜的書寫系統(如阿拉伯語或南亞和東南亞語言)中,字元與字形之間的關係可能更複雜,涉及到依賴於上下文的字形選擇以及字形重排序。字體封裝了呈現所選擇的字元集所需的字形集,還封裝了將字元序列映射到相應的字形序列所需的表。

物理字體和邏輯字體

Java Platform 可以區分兩種字體:物理 字體和邏輯 字體。

物理 字體是實際的字體資源庫,包含字形資料和表,這些資料和表使用字體技術(如 TrueType 或 PostScript Type 1)將字元序列映射到字形序列。Java Platform 的所有實作都支持 TrueType 字體;對其他字體技術的支持是與實作相關的。物理字體可以使用字體名稱,如 Helvetica、Palatino、HonMincho 或任意數量的其他字體名稱。通常,每種物理字體只支持有限的書寫系統集合,例如,只支持拉丁文字元,或者只支持日文和基本拉丁文。可用的物理字體集合隨配置的不同而有所不同。要求特定字體的應用程序可以使用 createFont 方法來捆綁這些字體,並對其進行實例化。

邏輯 字體是由必須受所有 Java 運行時環境支持的 Java 平臺所定義的五種字體系列:Serif、SansSerif、Monospaced、Dialog 和 DialogInput。這些邏輯字體不是實際的字體資源庫。此外,由 Java 運行時環境將邏輯字體名稱映射到物理字體。映射關係與實作和通常語言環境相關,因此它們提供的外觀和規格各不相同。通常,為了覆寫龐大的字元範圍,每種邏輯字體名稱都映射到幾種物理字體。

同級的 AWT 元件(如 LabelTextField)只可以使用邏輯字體。

有關使用物理字體或邏輯字體的相對優勢和劣勢的討論,請參閱 Internationalization FAQ 文檔。

字體外觀和名稱

Font 可以有多個外觀,如 heavy、medium、oblique、gothic 和 regular。所有這些外觀都有相似的排字設計。

可以從 Font 物件獲得三種不同的名稱。邏輯字體名稱 只是用來建構字體的名稱。字體外觀名稱,或外觀名稱 是特定字體外觀的名稱,如 Helvetica Bold。系列名稱 是字體系列的名稱,用來確定多種外觀(如 Helvetica)的排字設計。

Font 類別表示字體外觀集合中字體外觀的實例,字體外觀集合位於主機系統的系統資源中。例如,Arial Bold 和 Courier Bold Italic 是字體外觀。有幾個 Font 物件與字體外觀相關,每個物件在大小、樣式、變換和字體特徵上都有所不同。

GraphicsEnvironment 類別的 getAllFonts 方法返回系統中所有可用字體外觀組成的陣列。這些字體外觀被作為 Font 物件返回,物件的大小為 1,具有恆等變換和預設字體特徵。這些基本字體可以用來派生新的 Font 物件,使之具有變化的大小、樣式、變換和字體特徵,這些可以通過此類別中的 deriveFont 方法實作。

Font 和 TextAttribute

Font 支持大多數 TextAttribute。這使得一些操作(如呈現帶下劃線的文本)變得更方便,因為沒必要再顯式建構一個 TextLayout 物件。通過使用 TextAttribute 值的 Map 來建構或派生屬性,可以在 Font 上設置屬性。

一些 TextAttributes 值是不可序列化的,因此嘗試序列化具有這樣的值的 Font 實例不會使它們獲得序列化。這意味著從這樣一個串流實作序列化的 Font 不會等同於包含不可序列化屬性的原始 Font。這應該是很少出現的一個問題,因為這些屬性通常只使用在特殊情況下並且不可能被序列化。

創建 PaintGraphicAttribute 的自定義子類別的客戶機可以使它們可序列化並避免此問題。使用輸入方法高亮顯示的客戶機可以將這些轉換為特定於平臺的屬性,以便在當前平臺上高亮顯示它們並在 Font 上設置它們,以此作為解決方法。

基於 Map 的建構子和 deriveFont API 忽略了 FONT 屬性,並且沒有通過 Font 保留它;如果 FONT 屬性可能存在,則應該使用 static getFont(java.util.Map) 方法。有關更多資訊,請參閱 TextAttribute.FONT

一些屬性會帶來額外的呈現開銷,並且可能調用佈局。如果某一 Font 具有這樣的屬性,那麼 hasLayoutAttributes 方法將返回 true。

註:字體旋轉可能導致文本基線也跟著旋轉。為了應對這種(很少見的)可能性,可以指定字體 API 返回字體規格,並使參數「位於相對於基線的坐標中」。這將 'x' 坐標映射到沿基線的某段距離處(正 x 表示沿基線的正方向),將 'y' 坐標映射到位於 'x' 坐標的基線垂直方向的某段距離處(正 y 表示從基線向量順時針旋轉 90 度)。用於實作這些的 API 特別重要,它們被調出,就像具有「相對於基線的坐標」一樣。

另請參見:
序列化表格

欄位摘要
static int BOLD
          粗體樣式常數。
static int CENTER_BASELINE
          佈置文本時,在表意文字的文稿(如中文、日文和韓文)中使用的基線。
static String DIALOG
          邏輯字體 "Dialog" 的規範系列名稱的 String 常數。
static String DIALOG_INPUT
          邏輯字體 "DialogInput" 的規範系列名稱的 String 常數。
static int HANGING_BASELINE
          佈置文本時,在 Devanigiri 和類似文稿中使用的基線。
static int ITALIC
          斜體樣式常數。
static int LAYOUT_LEFT_TO_RIGHT
          layoutGlyphVector 的標誌,指示文本是從左到右的,這由 Bidi 分析確定。
static int LAYOUT_NO_LIMIT_CONTEXT
          layoutGlyphVector 的標誌,指示不應該檢查指定 limit 之後的 char 陣列中的文本。
static int LAYOUT_NO_START_CONTEXT
          layoutGlyphVector 的標誌,指示不應該檢查指定 start 之前的 char 陣列中的文本。
static int LAYOUT_RIGHT_TO_LEFT
          layoutGlyphVector 的標誌,指示文本是從右到左的,這由 Bidi 分析確定。
static String MONOSPACED
          邏輯字體 "Monospaced" 的規範系列名稱的 String 常數。
protected  String name
          Font 的邏輯名稱,它被傳遞到建構子中。
static int PLAIN
          普通樣式常數。
protected  float pointSize
          以 float 形式表示的 Font 的磅值大小。
static int ROMAN_BASELINE
          佈置文本時,在大多數 Roman 文稿中使用的基線。
static String SANS_SERIF
          邏輯字體 "SansSerif" 的規範系列名稱的 String 常數。
static String SERIF
          邏輯字體 "Serif" 的規範系列名稱的 String 常數。
protected  int size
          Font 的磅值大小,捨入為整數。
protected  int style
          Font 的樣式,它被傳遞到建構子中。
static int TRUETYPE_FONT
          標識 TRUETYPE 型別的字體資源。
static int TYPE1_FONT
          標識 TYPE1 型別的字體資源。
 
建構子摘要
protected Font(Font font)
          根據指定 font 創建一個新 Font
  Font(Map<? extends AttributedCharacterIterator.Attribute,?> attributes)
          創建一個具有指定屬性的新 Font
  Font(String name, int style, int size)
          根據指定名稱、樣式和磅值大小,創建一個新 Font
 
方法摘要
 boolean canDisplay(char c)
          檢查此 Font 是否具有指定字元的字形。
 boolean canDisplay(int codePoint)
          檢查此 Font 是否具有指定字元的字形。
 int canDisplayUpTo(char[] text, int start, int limit)
          指示此 Font 是否可以顯示指定 text 中從 start 開始至 limit 結束的所有字元。
 int canDisplayUpTo(CharacterIterator iter, int start, int limit)
          指示此 Font 是否可以顯示由 iter 指定的文本(從 start 開始至 limit 結束)。
 int canDisplayUpTo(String str)
          指示此 Font 是否可以顯示指定的 String
static Font createFont(int fontFormat, File fontFile)
          返回一個使用指定字體型別和指定字體檔案的新 Font
static Font createFont(int fontFormat, InputStream fontStream)
          返回一個使用指定字體型別和輸入資料的新 Font
 GlyphVector createGlyphVector(FontRenderContext frc, char[] chars)
          根據此 Font 中的 Unicode cmap 將字元一一映射到字形,從而創建一個 GlyphVector
 GlyphVector createGlyphVector(FontRenderContext frc, CharacterIterator ci)
          根據此 Font 中的 Unicode cmap 將指定字元一一映射到字形,從而創建一個 GlyphVector
 GlyphVector createGlyphVector(FontRenderContext frc, int[] glyphCodes)
          根據此 Font 中的 Unicode cmap 將字元一一映射到字形,從而創建一個 GlyphVector
 GlyphVector createGlyphVector(FontRenderContext frc, String str)
          根據此 Font 中的 Unicode cmap 將字元一一映射到字形,從而創建一個 GlyphVector
static Font decode(String str)
          返回 str 參數所描述的 Font
 Font deriveFont(AffineTransform trans)
          通過複製當前 Font 物件並應用新的變換,創建一個新 Font 物件。
 Font deriveFont(float size)
          通過複製當前 Font 物件並應用新的大小,創建一個新 Font 物件。
 Font deriveFont(int style)
          通過複製當前的 Font 物件,並應用新的樣式,創建一個新 Font 物件。
 Font deriveFont(int style, AffineTransform trans)
          通過複製此 Font 物件並應用新樣式和變換,創建一個新 Font 物件。
 Font deriveFont(int style, float size)
          通過複製此 Font 物件並應用新樣式和大小,創建一個新 Font 物件。
 Font deriveFont(Map<? extends AttributedCharacterIterator.Attribute,?> attributes)
          通過複製當前 Font 物件並應用新的字體屬性集,創建一個新 Font 物件。
 boolean equals(Object obj)
          將此 Font 物件與指定 Object 進行比較。
protected  void finalize()
          移除本機 Font 物件。
 Map<TextAttribute,?> getAttributes()
          返回此 Font 中可用的字體屬性的映射。
 AttributedCharacterIterator.Attribute[] getAvailableAttributes()
          返回由此 Font 支持的所有屬性的鍵。
 byte getBaselineFor(char c)
          返回適合用來顯示此字元的基線。
 String getFamily()
          返回此 Font 的系列名稱。
 String getFamily(Locale l)
          返回此 Font 的系列名稱(已經針對指定語言環境進行了本地化)。
static Font getFont(Map<? extends AttributedCharacterIterator.Attribute,?> attributes)
          返回適合於這些屬性的 Font
static Font getFont(String nm)
          從系統屬性列表返回一個 Font 物件。
static Font getFont(String nm, Font font)
          從系統屬性列表獲取指定的 Font
 String getFontName()
          返回此 Font 的字體外觀名稱。
 String getFontName(Locale l)
          返回此 Font 的字體外觀名稱(已經針對指定語言環境進行了本地化)。
 float getItalicAngle()
          返回此 Font 的斜角。
 LineMetrics getLineMetrics(char[] chars, int beginIndex, int limit, FontRenderContext frc)
          返回使用指定參數創建的 LineMetrics 物件。
 LineMetrics getLineMetrics(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc)
          返回使用指定參數創建的 LineMetrics 物件。
 LineMetrics getLineMetrics(String str, FontRenderContext frc)
          返回一個使用指定 StringFontRenderContext 創建的 LineMetrics 物件。
 LineMetrics getLineMetrics(String str, int beginIndex, int limit, FontRenderContext frc)
          返回使用指定參數創建的 LineMetrics 物件。
 Rectangle2D getMaxCharBounds(FontRenderContext frc)
          返回最大邊界定義在 FontRenderContext 中的字元的邊界。
 int getMissingGlyphCode()
          返回此 Font 不具有指定的 unicode 字形時所使用的 glyphCode 程式碼點。
 String getName()
          返回此 Font 的邏輯名稱。
 int getNumGlyphs()
          返回此 Font 中的字形數量。
 java.awt.peer.FontPeer getPeer()
          已過時。 現在,字體呈現與平臺無關。
 String getPSName()
          返回此 Font 的 postscript 名稱。
 int getSize()
          返回此 Font 的磅值大小,捨入為整數。
 float getSize2D()
          返回此 Font 的磅值大小(以 float 值表示)。
 Rectangle2D getStringBounds(char[] chars, int beginIndex, int limit, FontRenderContext frc)
          返回指定 FontRenderContext 指定字元陣列的邏輯邊界。
 Rectangle2D getStringBounds(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc)
          返回指定 FontRenderContext 中針對指定 CharacterIterator 進行索引的字元的邏輯邊界。
 Rectangle2D getStringBounds(String str, FontRenderContext frc)
          返回指定 FontRenderContext 中指定 String 的邏輯邊界。
 Rectangle2D getStringBounds(String str, int beginIndex, int limit, FontRenderContext frc)
          返回指定 FontRenderContext 中指定 String 的邏輯邊界。
 int getStyle()
          返回此 Font 的樣式。
 AffineTransform getTransform()
          返回與此 Font 相關的變換的副本。
 int hashCode()
          返回此 Font 的雜湊碼。
 boolean hasLayoutAttributes()
          如果此 Font 套件含需要額外佈局處理的屬性,則返回 true。
 boolean hasUniformLineMetrics()
          檢查此 Font 是否具有統一的行規格。
 boolean isBold()
          指示此 Font 物件的樣式是否為 BOLD。
 boolean isItalic()
          指示此 Font 物件的樣式是否為 ITALIC。
 boolean isPlain()
          指示此 Font 物件的樣式是否為 PLAIN。
 boolean isTransformed()
          指示此 Font 物件是否具有影響其大小以及 Size 屬性的變換。
 GlyphVector layoutGlyphVector(FontRenderContext frc, char[] text, int start, int limit, int flags)
          返回一個新 GlyphVector 物件,執行完整的文本佈局(如有可能)。
 String toString()
          將此 Font 物件轉換為 String 表示形式。
 
從類別 java.lang.Object 繼承的方法
clone, getClass, notify, notifyAll, wait, wait, wait
 

欄位詳細資訊

DIALOG

public static final String DIALOG
邏輯字體 "Dialog" 的規範系列名稱的 String 常數。它在 Font 建構中很有用,可提供該名稱的編譯時驗證。

從以下版本開始:
1.6
另請參見:
常數欄位值

DIALOG_INPUT

public static final String DIALOG_INPUT
邏輯字體 "DialogInput" 的規範系列名稱的 String 常數。它在 Font 建構中很有用,可提供該名稱的編譯時驗證。

從以下版本開始:
1.6
另請參見:
常數欄位值

SANS_SERIF

public static final String SANS_SERIF
邏輯字體 "SansSerif" 的規範系列名稱的 String 常數。它在 Font 建構中很有用,可提供該名稱的編譯時驗證。

從以下版本開始:
1.6
另請參見:
常數欄位值

SERIF

public static final String SERIF
邏輯字體 "Serif" 的規範系列名稱的 String 常數。它在 Font 建構中很有用,可提供該名稱的編譯時驗證。

從以下版本開始:
1.6
另請參見:
常數欄位值

MONOSPACED

public static final String MONOSPACED
邏輯字體 "Monospaced" 的規範系列名稱的 String 常數。它在 Font 建構中很有用,可提供該名稱的編譯時驗證。

從以下版本開始:
1.6
另請參見:
常數欄位值

PLAIN

public static final int PLAIN
普通樣式常數。

另請參見:
常數欄位值

BOLD

public static final int BOLD
粗體樣式常數。可與其他樣式常數(PLAIN 除外)進行組合,從而得到混合樣式。

另請參見:
常數欄位值

ITALIC

public static final int ITALIC
斜體樣式常數。可與其他樣式常數(PLAIN 除外)進行組合,從而得到混合樣式。

另請參見:
常數欄位值

ROMAN_BASELINE

public static final int ROMAN_BASELINE
佈置文本時,在大多數 Roman 文稿中使用的基線。

另請參見:
常數欄位值

CENTER_BASELINE

public static final int CENTER_BASELINE
佈置文本時,在表意文字的文稿(如中文、日文和韓文)中使用的基線。

另請參見:
常數欄位值

HANGING_BASELINE

public static final int HANGING_BASELINE
佈置文本時,在 Devanigiri 和類似文稿中使用的基線。

另請參見:
常數欄位值

TRUETYPE_FONT

public static final int TRUETYPE_FONT
標識 TRUETYPE 型別的字體資源。可用它為 createFont(int, java.io.InputStream) 方法指定一個 TrueType 字體資源。

從以下版本開始:
1.3
另請參見:
常數欄位值

TYPE1_FONT

public static final int TYPE1_FONT
標識 TYPE1 型別的字體資源。可用它為 createFont(int, java.io.InputStream) 方法指定一個 Type1 字體資源。

從以下版本開始:
1.5
另請參見:
常數欄位值

name

protected String name
Font 的邏輯名稱,它被傳遞到建構子中。

從以下版本開始:
JDK1.0
另請參見:
getName()

style

protected int style
Font 的樣式,它被傳遞到建構子中。此樣式可以為 PLAIN、BOLD、ITALIC 或 BOLD+ITALIC。

從以下版本開始:
JDK1.0
另請參見:
getStyle()

size

protected int size
Font 的磅值大小,捨入為整數。

從以下版本開始:
JDK1.0
另請參見:
getSize()

pointSize

protected float pointSize
float 形式表示的 Font 的磅值大小。

另請參見:
getSize(), getSize2D()

LAYOUT_LEFT_TO_RIGHT

public static final int LAYOUT_LEFT_TO_RIGHT
layoutGlyphVector 的標誌,指示文本是從左到右的,這由 Bidi 分析確定。

另請參見:
常數欄位值

LAYOUT_RIGHT_TO_LEFT

public static final int LAYOUT_RIGHT_TO_LEFT
layoutGlyphVector 的標誌,指示文本是從右到左的,這由 Bidi 分析確定。

另請參見:
常數欄位值

LAYOUT_NO_START_CONTEXT

public static final int LAYOUT_NO_START_CONTEXT
layoutGlyphVector 的標誌,指示不應該檢查指定 start 之前的 char 陣列中的文本。

另請參見:
常數欄位值

LAYOUT_NO_LIMIT_CONTEXT

public static final int LAYOUT_NO_LIMIT_CONTEXT
layoutGlyphVector 的標誌,指示不應該檢查指定 limit 之後的 char 陣列中的文本。

另請參見:
常數欄位值
建構子詳細資訊

Font

public Font(String name,
            int style,
            int size)
根據指定名稱、樣式和磅值大小,創建一個新 Font

字體名稱可以是字體外觀名稱或字體系列名稱。它與樣式一起使用,以尋找合適的字體外觀。如果指定了字體系列名稱,則使用樣式參數從系列中選擇最合適的外觀。如果指定了字體外觀名稱,則合併外觀的樣式和樣式參數,以便從同一個系列尋找最比對的字體。例如,如果指定外觀名稱 "Arial Bold" 及樣式 Font.ITALIC,則字體系統在 "Arial" 系列中尋找既是粗體又是斜體的外觀,可以將字體實例與物理字體外觀 "Arial Bold Italic" 相關聯。將樣式參數與指定外觀的樣式合併,而不是執行添加或減去操作。這意味著,指定粗體外觀和粗體樣式並不會雙倍加粗字體,而指定粗體外觀和普通樣式也不會變細字體。

如果無法找到所要求樣式的外觀,則字體系統可以應用樣式設計演算法來獲得所需的樣式。例如,如果要求 ITALIC,但是沒有可用的斜體外觀,則可以通過演算法使普通外觀傾斜。

字體名稱尋找是區分大小寫的,可以使用 US 語言環境的大小寫轉換規則。

如果 name 參數表示邏輯字體以外的事物,例如表示為物理字體外觀或系列名稱,並且無法通過實作物理字體或可相容的替代物映射它,則字體系統會將 Font 實例映射到 "Dialog",因此,通過 getFamily 報告的字體系列名稱將是 "Dialog"。

參數:
name - 字體名稱。可以是字體外觀名稱或字體系列名稱,並且可表示此 GraphicsEnvironment 中找到的邏輯字體或物理字體。邏輯字體的系列名稱有:Dialog、DialogInput、Monospaced、Serif 或 SansSerif。預定義 String 常數是為所有這些名稱(如 DIALOG)而存在。如果 namenull,則將新 Font邏輯字體名稱(由 getName() 返回)設置為 "Default"。
style - Font 的樣式常數。樣式參數是整數位遮罩碼,可以為 PLAIN,或 BOLD 和 ITALIC 的按位或(例如,ITALIC 或 BOLD|ITALIC)。如果樣式參數不符合任何一個期望的整數位遮罩碼,則將樣式設置為 PLAIN。
size - Font 的磅值大小
從以下版本開始:
JDK1.0
另請參見:
GraphicsEnvironment.getAllFonts(), GraphicsEnvironment.getAvailableFontFamilyNames()

Font

public Font(Map<? extends AttributedCharacterIterator.Attribute,?> attributes)
創建一個具有指定屬性的新 Font。只有 TextAttribute 中定義的鍵被識別。此外,FONT 屬性也沒有被此建構子識別(請參閱 getAvailableAttributes())。只有具有有效型別值的屬性會影響新的 Font

如果 attributesnull,則使用預設值初始化新 Font

參數:
attributes - 分派給新 Font 的屬性,或 null
另請參見:
TextAttribute

Font

protected Font(Font font)
根據指定 font 創建一個新 Font。此建構子由子類別使用。

參數:
font - 用來創建此 Font 的字體。
拋出:
NullPointerException - 如果 font 為 null
從以下版本開始:
1.6
方法詳細資訊

getPeer

@Deprecated
public java.awt.peer.FontPeer getPeer()
已過時。 現在,字體呈現與平臺無關。

獲取此 Font 的同位體。

返回:
Font 的同位體。
從以下版本開始:
JDK1.1

getFont

public static Font getFont(Map<? extends AttributedCharacterIterator.Attribute,?> attributes)
返回適合於這些屬性的 Font。如果 attributes 套件含一個使用有效 Font 作為其值的 FONT 屬性,那麼它將與其餘所有屬性合併。有關更多資訊,請參閱 TextAttribute.FONT

參數:
attributes - 分派給新 Font 的屬性
返回:
使用指定屬性創建的新 Font
拋出:
NullPointerException - 如果 attributes 為 null。
從以下版本開始:
1.2
另請參見:
TextAttribute

createFont

public static Font createFont(int fontFormat,
                              InputStream fontStream)
                       throws FontFormatException,
                              IOException
返回一個使用指定字體型別和輸入資料的新 Font。創建的新 Font 的磅值大小為 1,樣式為 PLAIN。然後,基本字體可以與此類別中的 deriveFont 方法一起使用,從而派生出新的 Font 物件,這些物件具有變化的大小、樣式、變換和字體特徵。此方法不會關閉 InputStream

為了使 Font 可用於 Font 建構子,必須通過調用 registerFont(Font)GraphicsEnviroment 中註冊返回的 Font

參數:
fontFormat - Font 的型別,如果指定了 TrueType 資源,則型別為 TRUETYPE_FONT,如果指定了 Type 1 資源,則型別為 TYPE1_FONT
fontStream - InputStream 物件,表示字體的輸入資料。
返回:
使用指定字體型別創建的新 Font
拋出:
IllegalArgumentException - 如果 fontFormat 不為 TRUETYPE_FONTTYPE1_FONT
FontFormatException - 如果 fontStream 資料不包含指定格式所需的字體表。
IOException - 如果無法完全讀取 fontStream
從以下版本開始:
1.3
另請參見:
GraphicsEnvironment.registerFont(Font)

createFont

public static Font createFont(int fontFormat,
                              File fontFile)
                       throws FontFormatException,
                              IOException
返回一個使用指定字體型別和指定字體檔案的新 Font。創建的新 Font 的磅值大小為 1,樣式為 PLAIN。基本字體可以與此類別中的 deriveFont 方法一起使用,從而派生出新的 Font 物件,這些物件具有變化的大小、樣式、變換和字體特徵。

參數:
fontFormat - Font 的型別,如果指定了 TrueType 資源,則型別為 TRUETYPE_FONT,如果指定了 Type 1 資源,則型別為 TYPE1_FONT。只要參考了返回的字體,或它派生的字體,實作就可以繼續存取 fontFile 以檢索字體資料。因此,如果檔案被更改,或變成不可存取的,其結果是不確定的。

為了使 Font 可用於 Font 建構子,必須通過調用 registerFont(Font)GraphicsEnviroment 中註冊返回的 Font

fontFile - File 物件,表示字體的輸入資料。
返回:
使用指定字體型別創建的新 Font
拋出:
IllegalArgumentException - 如果 fontFormat 不為 TRUETYPE_FONTorTYPE1_FONT
NullPointerException - 如果 fontFile 為 null。
IOException - 如果無法讀取 fontFile
FontFormatException - 如果 fontFile 不包含指定格式所需的字體表。
SecurityException - 如果正在執行的程式碼沒有從檔案中讀取的權限。
從以下版本開始:
1.5
另請參見:
GraphicsEnvironment.registerFont(Font)

getTransform

public AffineTransform getTransform()
返回與此 Font 相關的變換的副本。此轉換對於用於建構字體的方法而言是沒必要的。如果字體具有演算法上標(algorithmic superscripting)或寬度調整,那麼這將合併到返回的 AffineTransform 中。

通常不會轉換字體。客戶機通常應該先調用 isTransformed(),如果 isTransformed 返回 true,則只調用此方法。

返回:
AffineTransform 物件,表示此 Font 物件的變換屬性。

getFamily

public String getFamily()
返回此 Font 的系列名稱。

字體的系列名稱是特定於字體的。兩個字體 Helvetica Italic 和 Helvetica Bold 具有相同的系列名稱 Helvetica,但它們的字體外觀名稱是 Helvetica BoldHelvetica Italic。可用的系列名稱列表可以通過使用 GraphicsEnvironment.getAvailableFontFamilyNames() 方法得到。

使用 getName 可以獲取字體的邏輯名稱。使用 getFontName 可以獲取字體的字體外觀名稱。

返回:
一個 String,此 Font 的系列名稱。
從以下版本開始:
JDK1.1
另請參見:
getName(), getFontName()

getFamily

public String getFamily(Locale l)
返回此 Font 的系列名稱(已經針對指定語言環境進行了本地化)。

字體的系列名稱是特定於字體的。兩個字體 Helvetica Italic 和 Helvetica Bold 具有相同的系列名稱 Helvetica,但它們的字體外觀名稱是 Helvetica BoldHelvetica Italic。可用的系列名稱列表可以通過使用 GraphicsEnvironment.getAvailableFontFamilyNames() 方法得到。

使用 getFontName 可以獲取字體的字體外觀名稱。

參數:
l - 語言環境,要獲得該語言環境的系列名稱
返回:
一個 String,表示字體的系列名稱(已經針對指定語言環境進行了本地化)。
從以下版本開始:
1.2
另請參見:
getFontName(), Locale

getPSName

public String getPSName()
返回此 Font 的 postscript 名稱。使用 getFamily 可以獲取字體的系列名稱。使用 getFontName 可以獲取字體的字體外觀名稱。

返回:
一個 String,表示此 Font 的 postscript 名稱。
從以下版本開始:
1.2

getName

public String getName()
返回此 Font 的邏輯名稱。使用 getFamily 可以獲取字體的系列名稱。使用 getFontName 可以獲取字體的字體外觀名稱。

返回:
一個 String,表示此 Font 的邏輯名稱。
從以下版本開始:
JDK1.0
另請參見:
getFamily(), getFontName()

getFontName

public String getFontName()
返回此 Font 的字體外觀名稱。例如,Helvetica Bold 可以作為字體外觀名稱返回。使用 getFamily 可以獲取字體的系列名稱。使用 getName 可以獲取字體的邏輯名稱。

返回:
一個 String,表示此 Font 的字體外觀名稱。
從以下版本開始:
1.2
另請參見:
getFamily(), getName()

getFontName

public String getFontName(Locale l)
返回此 Font 的字體外觀名稱(已經針對指定語言環境進行了本地化)。例如,Helvetica Fett 可以作為字體外觀名稱返回。使用 getFamily 可以獲取字體的系列名稱。

參數:
l - 語言環境,要獲得該語言環境的字體外觀名稱
返回:
一個 String,表示字體外觀名稱(已經針對指定語言環境進行了本地化)。
另請參見:
getFamily(), Locale

getStyle

public int getStyle()
返回此 Font 的樣式。樣式可以為 PLAIN、BOLD、ITALIC 或 BOLD+ITALIC。

返回:
Font 的樣式
從以下版本開始:
JDK1.0
另請參見:
isPlain(), isBold(), isItalic()

getSize

public int getSize()
返回此 Font 的磅值大小,捨入為整數。大多數使用者都熟悉使用磅值大小 的概念,它用於指定字體中字形的大小。磅值大小定義了單間距文本文檔中某行的基線到下一行的基線之間的測量。磅值大小是基於排字磅值 的,大約為 1/72 英吋。

Java(tm)2D API 規定:1 磅等於使用者坐標中的 1 個單位。當使用規範化變換將使用者空間坐標轉換為設備空間坐標時,72 個使用者空間單位等於設備空間中的 1 英吋。在這種情況下,1 磅就是 1/72 英吋。

返回:
Font 的磅值大小(以 1/72 英吋為單位)。
從以下版本開始:
JDK1.0
另請參見:
getSize2D(), GraphicsConfiguration.getDefaultTransform(), GraphicsConfiguration.getNormalizingTransform()

getSize2D

public float getSize2D()
返回此 Font 的磅值大小(以 float 值表示)。

返回:
Font 的磅值大小(以 float 值表示)。
從以下版本開始:
1.2
另請參見:
getSize()

isPlain

public boolean isPlain()
指示此 Font 物件的樣式是否為 PLAIN。

返回:
如果此 Font 樣式為 PLAIN,則返回 true;否則返回 false
從以下版本開始:
JDK1.0
另請參見:
getStyle()

isBold

public boolean isBold()
指示此 Font 物件的樣式是否為 BOLD。

返回:
如果此 Font 物件的樣式為 BOLD,則返回 true;否則返回 false
從以下版本開始:
JDK1.0
另請參見:
getStyle()

isItalic

public boolean isItalic()
指示此 Font 物件的樣式是否為 ITALIC。

返回:
如果此 Font 物件的樣式為 ITALIC,則返回 true;否則返回 false
從以下版本開始:
JDK1.0
另請參見:
getStyle()

isTransformed

public boolean isTransformed()
指示此 Font 物件是否具有影響其大小以及 Size 屬性的變換。

返回:
如果此 Font 物件具有無標識的 AffineTransform 屬性,則返回 true;否則返回 false
從以下版本開始:
1.4
另請參見:
getTransform()

hasLayoutAttributes

public boolean hasLayoutAttributes()
如果此 Font 套件含需要額外佈局處理的屬性,則返回 true。

返回:
如果該字體已經具有佈局屬性,則返回 true
從以下版本開始:
1.6

getFont

public static Font getFont(String nm)
從系統屬性列表返回一個 Font 物件。nm 被視為要獲得的系統屬性的名稱。然後,根據 Font.decode(String) 規範,將此屬性的 String 值解釋為一個 Font 物件。如果無法找到指定屬性,或者執行程式碼沒有讀取該屬性的權限,則返回 null。

參數:
nm - 屬性名稱
返回:
屬性名稱描述的 Font 物件,如果沒有這樣的屬性存在,則返回 null。
拋出:
NullPointerException - 如果 nm 為 null。
從以下版本開始:
1.2
另請參見:
decode(String)

decode

public static Font decode(String str)
返回 str 參數所描述的 Font。為了確保此方法返回所需的 Font,可以使用以下方式之一格式化 str 參數。

其中,style 是以下四個區分大小寫的字元串之一:"PLAIN""BOLD""BOLDITALIC""ITALIC",pointsize 是磅值大小的正十進制整數表示形式。例如,如果想要的字體是 Arial、粗體、磅值大小為 18,則按以下方式調用此方法:"Arial-BOLD-18"。這等同於調用以下 Font 建構子:new Font("Arial", Font.BOLD, 18);,值被解釋為建構子所指定的形式。

有效的尾部十進制欄位總是被解釋為 pointsize。因此,後跟十進制值的 fontname 不應該在只在 fontname 的格式中使用。

如果樣式名稱欄位不是有效的樣式字元串,則它被解釋為樣式名稱的一部分,並且使用預設樣式。

只有 ' ' 或 '-' 可以用來分隔輸入中的欄位。所標識的分隔符是最接近字元串末尾的字元,它將有效的 pointsize 或有效的樣式名稱與字元串的其餘部分分隔開來。Null(空)pointsize 和樣式欄位被視為有效欄位,具有該欄位的預設值。

有些字體名稱可以包括分隔符 ' ' 或 '-'。如果 str 不是由三部分構成,例如,stylepointsize 欄位不出現在 str 中,並且 fontname 還包含確定為分隔符的字元,則這些打算作為 fontname 一部分出現的字元也可以解釋為分隔符,因此字體名稱無法正確識別。

預設大小為 12,預設樣式為 PLAIN。如果 str 沒有指定有效大小,則返回的 Font 大小為 12。如果 str 沒有指定有效樣式,則返回的 Font 樣式為 PLAIN。如果沒有在 str 參數中指定有效的字體名稱,則此方法將返回系列名稱為 "Dialog" 的字體。要確定系統上可以使用哪些字體系列名稱,可以使用 GraphicsEnvironment.getAvailableFontFamilyNames() 方法。如果 strnull,則返回的新 Font 的系列名稱為 "Dialog",大小為 12,樣式為 PLAIN。

參數:
str - 字體名稱,或 null
返回:
str 描述的 Font 物件,如果 strnull,則返回新的預設 Font
從以下版本開始:
JDK1.1
另請參見:
getFamily()

getFont

public static Font getFont(String nm,
                           Font font)
從系統屬性列表獲取指定的 Font。在 SystemgetProperty 方法中,第一個參數被視為要獲取的系統屬性的名稱。接著將此屬性的 String 值解釋為 Font 物件。

屬性值應該是 Font.decode(String) 所接受的形式之一。如果無法找到指定屬性,或者執行程式碼沒有讀取該屬性的權限,則返回 font 參數。

參數:
nm - 不區分大小寫的屬性名稱
font - 如果沒有定義屬性 nm,則為要返回的預設 Font
返回:
屬性的 Font 值。
拋出:
NullPointerException - 如果 nm 為 null。
另請參見:
decode(String)

hashCode

public int hashCode()
返回此 Font 的雜湊碼。

覆寫:
類別 Object 中的 hashCode
返回:
Font 的雜湊碼值。
從以下版本開始:
JDK1.0
另請參見:
Object.equals(java.lang.Object), Hashtable

equals

public boolean equals(Object obj)
將此 Font 物件與指定 Object 進行比較。

覆寫:
類別 Object 中的 equals
參數:
obj - 要比較的 Object
返回:
如果物件相同,或參數是 Font 物件,且描述的字體與此物件相同,則返回 true;否則,返回 false
從以下版本開始:
JDK1.0
另請參見:
Object.hashCode(), Hashtable

toString

public String toString()
將此 Font 物件轉換為 String 表示形式。

覆寫:
類別 Object 中的 toString
返回:
Font 物件的 String 表示形式。
從以下版本開始:
JDK1.0

getNumGlyphs

public int getNumGlyphs()
返回此 Font 中的字形數量。此 Font 的字形程式碼,範圍從 0 到 getNumGlyphs() - 1。

返回:
Font 的字形數量。
從以下版本開始:
1.2

getMissingGlyphCode

public int getMissingGlyphCode()
返回此 Font 不具有指定的 unicode 字形時所使用的 glyphCode 程式碼點。

返回:
Font 的 glyphCode。
從以下版本開始:
1.2

getBaselineFor

public byte getBaselineFor(char c)
返回適合用來顯示此字元的基線。

大字體可以支持不同的書寫系統,並且每個系統都可以使用不同的基線。字元參數確定要使用的書寫系統。客戶不應該假定所有字元都使用相同的基線。

參數:
c - 用來標識書寫系統的字元
返回:
適合於指定字元的基線。
從以下版本開始:
1.2
另請參見:
LineMetrics.getBaselineOffsets(), ROMAN_BASELINE, CENTER_BASELINE, HANGING_BASELINE

getAttributes

public Map<TextAttribute,?> getAttributes()
返回此 Font 中可用的字體屬性的映射。屬性包括諸如連字和字形替換之類別的事情。

返回:
Font 的屬性映射。

getAvailableAttributes

public AttributedCharacterIterator.Attribute[] getAvailableAttributes()
返回由此 Font 支持的所有屬性的鍵。這些屬性可以用來派生其他字體。

返回:
一個陣列,包含受此 Font 支持的所有屬性的鍵。
從以下版本開始:
1.2

deriveFont

public Font deriveFont(int style,
                       float size)
通過複製此 Font 物件並應用新樣式和大小,創建一個新 Font 物件。

參數:
style - 新 Font 的樣式
size - 新 Font 的大小
返回:
Font 物件。
從以下版本開始:
1.2

deriveFont

public Font deriveFont(int style,
                       AffineTransform trans)
通過複製此 Font 物件並應用新樣式和變換,創建一個新 Font 物件。

參數:
style - 新 Font 的樣式
trans - 與新 Font 相關的 AffineTransform
返回:
一個新 Font 物件。
拋出:
IllegalArgumentException - 如果 transnull
從以下版本開始:
1.2

deriveFont

public Font deriveFont(float size)
通過複製當前 Font 物件並應用新的大小,創建一個新 Font 物件。

參數:
size - 新 Font 的大小。
返回:
Font 物件。
從以下版本開始:
1.2

deriveFont

public Font deriveFont(AffineTransform trans)
通過複製當前 Font 物件並應用新的變換,創建一個新 Font 物件。

參數:
trans - 與新 Font 相關的 AffineTransform
返回:
一個新的 Font 物件。
拋出:
IllegalArgumentException - 如果 transnull
從以下版本開始:
1.2

deriveFont

public Font deriveFont(int style)
通過複製當前的 Font 物件,並應用新的樣式,創建一個新 Font 物件。

參數:
style - 新 Font 的樣式
返回:
Font 物件。
從以下版本開始:
1.2

deriveFont

public Font deriveFont(Map<? extends AttributedCharacterIterator.Attribute,?> attributes)
通過複製當前 Font 物件並應用新的字體屬性集,創建一個新 Font 物件。

參數:
attributes - 為新 Font 所啟用的屬性映射
返回:
Font 物件。
從以下版本開始:
1.2

canDisplay

public boolean canDisplay(char c)
檢查此 Font 是否具有指定字元的字形。

註:此方法無法處理增補字元。要支持所有 Unicode 字元,包括增補字元,可以使用 canDisplay(int) 方法或 canDisplayUpTo 方法。

參數:
c - 需要字形的字元
返回:
如果此 Font 具有該字元的字形,則返回 true;否則返回 false
從以下版本開始:
1.2

canDisplay

public boolean canDisplay(int codePoint)
檢查此 Font 是否具有指定字元的字形。

參數:
codePoint - 需要字形的字元(Unicode 程式碼點)。
返回:
如果此 Font 具有該字元的字形,則返回 true;否則返回 false
拋出:
IllegalArgumentException - 如果程式碼點不是一個有效的 Unicode 程式碼點。
從以下版本開始:
1.5
另請參見:
Character.isValidCodePoint(int)

canDisplayUpTo

public int canDisplayUpTo(String str)
指示此 Font 是否可以顯示指定的 String。對於使用 Unicode 編碼的字元串,知道特定字體是否可以顯示該字元串是很重要的。此方法返回 String str 中的一個偏移量,這是此 Font 不使用缺少的字形程式碼就無法顯示的第一個字元。如果 Font 可以顯示所有字元,則返回 -1。

參數:
str - 一個 String 物件
返回:
str 中的一個偏移量,指向 str 中此 Font 無法顯示的第一個字元;如果此 Font 可以顯示 str 中的所有字元,則返回 -1
從以下版本開始:
1.2

canDisplayUpTo

public int canDisplayUpTo(char[] text,
                          int start,
                          int limit)
指示此 Font 是否可以顯示指定 text 中從 start 開始至 limit 結束的所有字元。此方法是一次方便的重載。

參數:
text - 指定 char 值的陣列
start - 指定 char 值陣列中的指定起始偏移量 (in char)
limit - 指定 char 值陣列中的指定結束偏移量 (in char)
返回:
text 中的偏移量,指向此 Font 無法顯示的 text 中的第一個字元;如果此 Font 可以顯示 text 中的所有字元,則返回 -1
從以下版本開始:
1.2

canDisplayUpTo

public int canDisplayUpTo(CharacterIterator iter,
                          int start,
                          int limit)
指示此 Font 是否可以顯示由 iter 指定的文本(從 start 開始至 limit 結束)。

參數:
iter - CharacterIterator 物件
start - 指定 CharacterIterator 中的指定起始偏移量。
limit - 指定 CharacterIterator 中的指定結束偏移量。
返回:
iter 中的偏移量,它指向 iter 中此 Font 無法顯示的第一個字元;如果此 Font 可以顯示 iter 中的所有字元,則返回 -1
從以下版本開始:
1.2

getItalicAngle

public float getItalicAngle()
返回此 Font 的斜角。斜角是與此 Font 的動作最比對的 caret 的反斜面。

返回:
Font 的 ITALIC 樣式的角度
另請參見:
TextAttribute.POSTURE

hasUniformLineMetrics

public boolean hasUniformLineMetrics()
檢查此 Font 是否具有統一的行規格。邏輯 Font 可以是復合字體,這意味著它由不同的物理字體組成,可以覆寫不同的程式碼範圍。其中每一種字體都可能有不同的 LineMetrics。如果邏輯 Font 是單一字體,則規格將是統一的。

返回:
如果此 Font 具有統一的行規格,則返回 true;否則返回 false

getLineMetrics

public LineMetrics getLineMetrics(String str,
                                  FontRenderContext frc)
返回一個使用指定 StringFontRenderContext 創建的 LineMetrics 物件。

參數:
str - 指定的 String
frc - 指定的 FontRenderContext
返回:
使用指定 StringFontRenderContext 創建的 LineMetrics 物件。

getLineMetrics

public LineMetrics getLineMetrics(String str,
                                  int beginIndex,
                                  int limit,
                                  FontRenderContext frc)
返回使用指定參數創建的 LineMetrics 物件。

參數:
str - 指定的 String
beginIndex - str 的初始偏移量
limit - str 的結束偏移量
frc - 指定的 FontRenderContext
返回:
使用指定參數創建的 LineMetrics 物件。

getLineMetrics

public LineMetrics getLineMetrics(char[] chars,
                                  int beginIndex,
                                  int limit,
                                  FontRenderContext frc)
返回使用指定參數創建的 LineMetrics 物件。

參數:
chars - 字元陣列
beginIndex - chars 的初始偏移量
limit - chars 的結束偏移量
frc - 指定的 FontRenderContext
返回:
使用指定參數創建的 LineMetrics 物件。

getLineMetrics

public LineMetrics getLineMetrics(CharacterIterator ci,
                                  int beginIndex,
                                  int limit,
                                  FontRenderContext frc)
返回使用指定參數創建的 LineMetrics 物件。

參數:
ci - 指定的 CharacterIterator
beginIndex - ci 中的初始偏移量
limit - ci 的結束偏移量
frc - 指定的 FontRenderContext
返回:
使用指定參數創建的 LineMetrics 物件。

getStringBounds

public Rectangle2D getStringBounds(String str,
                                   FontRenderContext frc)
返回指定 FontRenderContext 中指定 String 的邏輯邊界。邏輯邊界包含 origin、ascent、advance 和 height,其中包括了 leading。邏輯邊界並不總是包圍所有文本。例如,在某些語言和字體中,accent 標記可以位於 ascent 之上,或 descent 之下。要得到可視的邊界框(它包圍了所有文本),可以使用 TextLayoutgetBounds 方法。

註:返回的邊界在相對於基線的坐標中(請參閱 class notes)。

參數:
str - 指定的 String
frc - 指定的 FontRenderContext
返回:
一個 Rectangle2D,它是指定 FontRenderContext 中指定 String 的邊界框。
從以下版本開始:
1.2
另請參見:
FontRenderContext, createGlyphVector(java.awt.font.FontRenderContext, java.lang.String)

getStringBounds

public Rectangle2D getStringBounds(String str,
                                   int beginIndex,
                                   int limit,
                                   FontRenderContext frc)
返回指定 FontRenderContext 中指定 String 的邏輯邊界。邏輯邊界包含 origin、ascent、advance 和 height,其中包括了 leading。邏輯邊界並不總是包圍所有文本。例如,在某些語言和字體中,accent 標記可以位於 ascent 之上,或 descent 之下。要得到可視的邊界框(它包圍了所有文本),可以使用 TextLayoutgetBounds 方法。

註:返回的邊界在相對於基線的坐標中(請參閱 class notes)。

參數:
str - 指定的 String
beginIndex - str 的初始偏移量
limit - str 的結束偏移量
frc - 指定的 FontRenderContext
返回:
一個 Rectangle2D,它是指定 FontRenderContext 中指定 String 的邊界框。
拋出:
IndexOutOfBoundsException - 如果 beginIndex 小於零,或 limit 大於 str 的長度,或 beginIndex 大於 limit
從以下版本開始:
1.2
另請參見:
FontRenderContext, createGlyphVector(java.awt.font.FontRenderContext, java.lang.String)

getStringBounds

public Rectangle2D getStringBounds(char[] chars,
                                   int beginIndex,
                                   int limit,
                                   FontRenderContext frc)
返回指定 FontRenderContext 指定字元陣列的邏輯邊界。邏輯邊界包含 origin、ascent、advance 和 height,其中包括了 leading。邏輯邊界並不總是包圍所有文本。例如,在某些語言和字體中,accent 標記可以位於 ascent 之上,或 descent 之下。要得到可視的邊界框(它包圍了所有文本),可以使用 TextLayoutgetBounds 方法。

註:返回的邊界在相對於基線的坐標中(請參閱 class notes)。

參數:
chars - 字元陣列
beginIndex - 字元陣列的初始偏移量
limit - 字元陣列的結束偏移量
frc - 指定的 FontRenderContext
返回:
一個 Rectangle2D,它是指定 FontRenderContext 中指定字元陣列的邊界框。
拋出:
IndexOutOfBoundsException - 如果 beginIndex 小於零,或 limit 大於 chars 的長度,或 beginIndex 大於 limit
從以下版本開始:
1.2
另請參見:
FontRenderContext, createGlyphVector(java.awt.font.FontRenderContext, java.lang.String)

getStringBounds

public Rectangle2D getStringBounds(CharacterIterator ci,
                                   int beginIndex,
                                   int limit,
                                   FontRenderContext frc)
返回指定 FontRenderContext 中針對指定 CharacterIterator 進行索引的字元的邏輯邊界。邏輯邊界包含 origin、ascent、advance 和 height,其中包括了 leading。邏輯邊界並不總是包圍所有文本。例如,在某些語言和字體中,accent 標記可以位於 ascent 之上,或 descent 之下。要得到可視的邊界框(它包圍了所有文本),可以使用 TextLayoutgetBounds 方法。

註:返回的邊界在相對於基線的坐標中(請參閱 class notes)。

參數:
ci - 指定的 CharacterIterator
beginIndex - ci 中的初始偏移量
limit - ci 中的結束偏移量
frc - 指定的 FontRenderContext
返回:
一個 Rectangle2D,它是指定 FontRenderContext 中針對指定 CharacterIterator 進行索引的字元的邊界框。
拋出:
IndexOutOfBoundsException - 如果 beginIndex 小於 ci 的起始索引,或 limit 大於 ci 的結束索引,或 beginIndex 大於 limit
從以下版本開始:
1.2
另請參見:
FontRenderContext, createGlyphVector(java.awt.font.FontRenderContext, java.lang.String)

getMaxCharBounds

public Rectangle2D getMaxCharBounds(FontRenderContext frc)
返回最大邊界定義在 FontRenderContext 中的字元的邊界。

註:返回的邊界在相對於基線的坐標中(請參閱 class notes)。

參數:
frc - 指定的 FontRenderContext
返回:
一個 Rectangle2D,它是具有最大邊界的字元的邊界框。

createGlyphVector

public GlyphVector createGlyphVector(FontRenderContext frc,
                                     String str)
根據此 Font 中的 Unicode cmap 將字元一一映射到字形,從而創建一個 GlyphVector。除了字形到字元的映射之外,此方法不做任何其他處理。這意味著,此方法對於某些文稿是無用的,如 Arabic、Hebrew、Thai 和 Indic,它們要求進行重排序、整形或連字替換。

參數:
frc - 指定的 FontRenderContext
str - 指定的 String
返回:
使用指定 String 和指定 FontRenderContext 創建的新 GlyphVector

createGlyphVector

public GlyphVector createGlyphVector(FontRenderContext frc,
                                     char[] chars)
根據此 Font 中的 Unicode cmap 將字元一一映射到字形,從而創建一個 GlyphVector。除了字形到字元的映射之外,此方法不做任何其他處理。這意味著,此方法對於某些文稿是無用的,如 Arabic、Hebrew、Thai 和 Indic,它們要求進行重排序、整形或連字替換。

參數:
frc - 指定的 FontRenderContext
chars - 指定的字元陣列
返回:
使用指定字元陣列和指定 FontRenderContext 創建的 GlyphVector

createGlyphVector

public GlyphVector createGlyphVector(FontRenderContext frc,
                                     CharacterIterator ci)
根據此 Font 中的 Unicode cmap 將指定字元一一映射到字形,從而創建一個 GlyphVector。除了字形到字元的映射之外,此方法不做任何其他處理。這意味著,此方法對於某些文稿是無用的,如 Arabic、Hebrew、Thai 和 Indic,它們要求進行重排序、整形或連字替換。

參數:
frc - 指定的 FontRenderContext
ci - 指定的 CharacterIterator
返回:
使用指定 CharacterIterator 和指定 FontRenderContext 創建的 GlyphVector

createGlyphVector

public GlyphVector createGlyphVector(FontRenderContext frc,
                                     int[] glyphCodes)
根據此 Font 中的 Unicode cmap 將字元一一映射到字形,從而創建一個 GlyphVector。除了字形到字元的映射之外,此方法不做任何其他處理。這意味著,此方法對於某些文稿是無用的,如 Arabic、Hebrew、Thai 和 Indic,它們要求進行重排序、整形或連字替換。

參數:
frc - 指定的 FontRenderContext
glyphCodes - 指定的整數陣列
返回:
使用指定整數陣列和指定 FontRenderContext 創建的 GlyphVector

layoutGlyphVector

public GlyphVector layoutGlyphVector(FontRenderContext frc,
                                     char[] text,
                                     int start,
                                     int limit,
                                     int flags)
返回一個新 GlyphVector 物件,執行完整的文本佈局(如有可能)。複雜文本要求有完整佈局,如 Arabic 或 Hindi。對不同文稿的支持取決於字體和實作。

Layout requires bidi analysis, as performed by Bidi 只應該在具有統一方向的文本上執行。用 flags 參數來指示方向,通過使用 LAYOUT_RIGHT_TO_LEFT 來指示從右到左(Arabic 和 Hebrew)的運行方向,或通過使用 LAYOUT_LEFT_TO_RIGHT 來指示從左到右 (English) 的運行方向。

此外,有些操作(比如 Arabic 整形)需要上下文,這樣在開始和結束處的字元才會有合適的形狀。有時,在所提供範圍之外的緩衝區中的資料並不是有效資料。可以將值 LAYOUT_NO_START_CONTEXT 和 LAYOUT_NO_LIMIT_CONTEXT 添加到 flags 參數中,分別指示在 start 之前或 limit 之後的文本不應該作為上下文進行檢查。

flags 參數的所有其他值均被保留。

參數:
frc - 指定的 FontRenderContext
text - 要佈局的文本
start - GlyphVector 所要使用的文本的起始處
limit - GlyphVector 所要使用的文本的結束處
flags - 如上所述的控制標誌
返回:
一個新 GlyphVector,表示 start 和 limit 之間的文本,具有經過選擇和定位的字形,以便以最佳方式表示文本
拋出:
ArrayIndexOutOfBoundsException - 如果 start 或 limit 超出了邊界
從以下版本開始:
1.4
另請參見:
Bidi, LAYOUT_LEFT_TO_RIGHT, LAYOUT_RIGHT_TO_LEFT, LAYOUT_NO_START_CONTEXT, LAYOUT_NO_LIMIT_CONTEXT

finalize

protected void finalize()
                 throws Throwable
移除本機 Font 物件。

覆寫:
類別 Object 中的 finalize
拋出:
Throwable - 此方法拋出的 Exception

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only