|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.awt.Font
public class Font
Font
類別表示字體,可以使用它以可見方式呈現文本。字體提供將字元 序列映射到字形 序列所需要的資訊,以便在 Graphics
物件和 Component
物件上呈現字形序列。
'g'
(G 的拉丁小寫字母)是一個字元。
字形 是用來呈現字元或字元序列的一種形狀。在簡單的書寫系統(如拉丁文)中,通常一個字形就表示一個字元。但在一般情況下,字元和字形並沒有一對一的對應關係。例如,字元 'á' A 的帶重音符號的拉丁小寫字母 可以由兩個字形表示:一個是 'a',一個是 '´'。另一方面,兩字元的字元串 "fi" 可以由單個字形 "fi" 連字表示。在複雜的書寫系統(如阿拉伯語或南亞和東南亞語言)中,字元與字形之間的關係可能更複雜,涉及到依賴於上下文的字形選擇以及字形重排序。字體封裝了呈現所選擇的字元集所需的字形集,還封裝了將字元序列映射到相應的字形序列所需的表。
物理 字體是實際的字體資源庫,包含字形資料和表,這些資料和表使用字體技術(如 TrueType 或 PostScript Type 1)將字元序列映射到字形序列。Java Platform 的所有實作都支持 TrueType 字體;對其他字體技術的支持是與實作相關的。物理字體可以使用字體名稱,如 Helvetica、Palatino、HonMincho 或任意數量的其他字體名稱。通常,每種物理字體只支持有限的書寫系統集合,例如,只支持拉丁文字元,或者只支持日文和基本拉丁文。可用的物理字體集合隨配置的不同而有所不同。要求特定字體的應用程序可以使用 createFont
方法來捆綁這些字體,並對其進行實例化。
邏輯 字體是由必須受所有 Java 運行時環境支持的 Java 平臺所定義的五種字體系列:Serif、SansSerif、Monospaced、Dialog 和 DialogInput。這些邏輯字體不是實際的字體資源庫。此外,由 Java 運行時環境將邏輯字體名稱映射到物理字體。映射關係與實作和通常語言環境相關,因此它們提供的外觀和規格各不相同。通常,為了覆寫龐大的字元範圍,每種邏輯字體名稱都映射到幾種物理字體。
同級的 AWT 元件(如 Label
和 TextField
)只可以使用邏輯字體。
有關使用物理字體或邏輯字體的相對優勢和劣勢的討論,請參閱 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
。這使得一些操作(如呈現帶下劃線的文本)變得更方便,因為沒必要再顯式建構一個 TextLayout
物件。通過使用 TextAttribute
值的 Map
來建構或派生屬性,可以在 Font 上設置屬性。
一些 TextAttributes
值是不可序列化的,因此嘗試序列化具有這樣的值的 Font
實例不會使它們獲得序列化。這意味著從這樣一個串流實作序列化的 Font 不會等同於包含不可序列化屬性的原始 Font。這應該是很少出現的一個問題,因為這些屬性通常只使用在特殊情況下並且不可能被序列化。
FOREGROUND
和 BACKGROUND
使用 Paint
值。子類別 Color
是可序列化的,而 GradientPaint
和 TexturePaint
是不可序列化的。CHAR_REPLACEMENT
使用 GraphicAttribute
值。子類別 ShapeGraphicAttribute
和 ImageGraphicAttribute
是不可序列化的。
INPUT_METHOD_HIGHLIGHT
使用 InputMethodHighlight
值,它是不可序列化的。請參閱 InputMethodHighlight
。Paint
和 GraphicAttribute
的自定義子類別的客戶機可以使它們可序列化並避免此問題。使用輸入方法高亮顯示的客戶機可以將這些轉換為特定於平臺的屬性,以便在當前平臺上高亮顯示它們並在 Font 上設置它們,以此作為解決方法。
基於 Map
的建構子和 deriveFont
API 忽略了 FONT 屬性,並且沒有通過 Font 保留它;如果 FONT 屬性可能存在,則應該使用 static getFont(java.util.Map extends java.text.AttributedCharacterIterator.Attribute, ?>)
方法。有關更多資訊,請參閱 TextAttribute.FONT
。
一些屬性會帶來額外的呈現開銷,並且可能調用佈局。如果某一 Font
具有這樣的屬性,那麼
方法將返回 true。hasLayoutAttributes
註:字體旋轉可能導致文本基線也跟著旋轉。為了應對這種(很少見的)可能性,可以指定字體 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)
返回一個使用指定 String 和 FontRenderContext 創建的 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 |
欄位詳細資訊 |
---|
public static final String DIALOG
public static final String DIALOG_INPUT
public static final String SANS_SERIF
public static final String SERIF
public static final String MONOSPACED
public static final int PLAIN
public static final int BOLD
public static final int ITALIC
public static final int ROMAN_BASELINE
public static final int CENTER_BASELINE
public static final int HANGING_BASELINE
public static final int TRUETYPE_FONT
createFont(int, java.io.InputStream)
方法指定一個 TrueType 字體資源。
public static final int TYPE1_FONT
createFont(int, java.io.InputStream)
方法指定一個 Type1 字體資源。
protected String name
Font
的邏輯名稱,它被傳遞到建構子中。
getName()
protected int style
Font
的樣式,它被傳遞到建構子中。此樣式可以為 PLAIN、BOLD、ITALIC 或 BOLD+ITALIC。
getStyle()
protected int size
Font
的磅值大小,捨入為整數。
getSize()
protected float pointSize
float
形式表示的 Font
的磅值大小。
getSize()
,
getSize2D()
public static final int LAYOUT_LEFT_TO_RIGHT
public static final int LAYOUT_RIGHT_TO_LEFT
public static final int LAYOUT_NO_START_CONTEXT
public static final int LAYOUT_NO_LIMIT_CONTEXT
建構子詳細資訊 |
---|
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
)而存在。如果 name
為 null
,則將新 Font
的邏輯字體名稱(由 getName()
返回)設置為 "Default"。style
- Font
的樣式常數。樣式參數是整數位遮罩碼,可以為 PLAIN,或 BOLD 和 ITALIC 的按位或(例如,ITALIC 或 BOLD|ITALIC)。如果樣式參數不符合任何一個期望的整數位遮罩碼,則將樣式設置為 PLAIN。size
- Font
的磅值大小GraphicsEnvironment.getAllFonts()
,
GraphicsEnvironment.getAvailableFontFamilyNames()
public Font(Map<? extends AttributedCharacterIterator.Attribute,?> attributes)
Font
。只有 TextAttribute
中定義的鍵被識別。此外,FONT 屬性也沒有被此建構子識別(請參閱 getAvailableAttributes()
)。只有具有有效型別值的屬性會影響新的 Font
。
如果 attributes
為 null
,則使用預設值初始化新 Font
。
attributes
- 分派給新 Font
的屬性,或 null
TextAttribute
protected Font(Font font)
font
創建一個新 Font
。此建構子由子類別使用。
font
- 用來創建此 Font
的字體。
NullPointerException
- 如果 font
為 null方法詳細資訊 |
---|
@Deprecated public java.awt.peer.FontPeer getPeer()
Font
的同位體。
Font
的同位體。public static Font getFont(Map<? extends AttributedCharacterIterator.Attribute,?> attributes)
Font
。如果 attributes
套件含一個使用有效 Font
作為其值的 FONT
屬性,那麼它將與其餘所有屬性合併。有關更多資訊,請參閱 TextAttribute.FONT
。
attributes
- 分派給新 Font
的屬性
Font
NullPointerException
- 如果 attributes
為 null。TextAttribute
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_FONT
或 TYPE1_FONT
。
FontFormatException
- 如果 fontStream
資料不包含指定格式所需的字體表。
IOException
- 如果無法完全讀取 fontStream
。GraphicsEnvironment.registerFont(Font)
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_FONT
orTYPE1_FONT
。
NullPointerException
- 如果 fontFile
為 null。
IOException
- 如果無法讀取 fontFile
。
FontFormatException
- 如果 fontFile
不包含指定格式所需的字體表。
SecurityException
- 如果正在執行的程式碼沒有從檔案中讀取的權限。GraphicsEnvironment.registerFont(Font)
public AffineTransform getTransform()
Font
相關的變換的副本。此轉換對於用於建構字體的方法而言是沒必要的。如果字體具有演算法上標(algorithmic superscripting)或寬度調整,那麼這將合併到返回的 AffineTransform
中。
通常不會轉換字體。客戶機通常應該先調用 isTransformed()
,如果 isTransformed
返回 true,則只調用此方法。
AffineTransform
物件,表示此 Font
物件的變換屬性。public String getFamily()
Font
的系列名稱。
字體的系列名稱是特定於字體的。兩個字體 Helvetica Italic 和 Helvetica Bold 具有相同的系列名稱 Helvetica,但它們的字體外觀名稱是 Helvetica Bold 和 Helvetica Italic。可用的系列名稱列表可以通過使用 GraphicsEnvironment.getAvailableFontFamilyNames()
方法得到。
使用 getName
可以獲取字體的邏輯名稱。使用 getFontName
可以獲取字體的字體外觀名稱。
String
,此 Font
的系列名稱。getName()
,
getFontName()
public String getFamily(Locale l)
Font
的系列名稱(已經針對指定語言環境進行了本地化)。
字體的系列名稱是特定於字體的。兩個字體 Helvetica Italic 和 Helvetica Bold 具有相同的系列名稱 Helvetica,但它們的字體外觀名稱是 Helvetica Bold 和 Helvetica Italic。可用的系列名稱列表可以通過使用 GraphicsEnvironment.getAvailableFontFamilyNames()
方法得到。
使用 getFontName
可以獲取字體的字體外觀名稱。
l
- 語言環境,要獲得該語言環境的系列名稱
String
,表示字體的系列名稱(已經針對指定語言環境進行了本地化)。getFontName()
,
Locale
public String getPSName()
Font
的 postscript 名稱。使用 getFamily
可以獲取字體的系列名稱。使用 getFontName
可以獲取字體的字體外觀名稱。
String
,表示此 Font
的 postscript 名稱。public String getName()
Font
的邏輯名稱。使用 getFamily
可以獲取字體的系列名稱。使用 getFontName
可以獲取字體的字體外觀名稱。
String
,表示此 Font
的邏輯名稱。getFamily()
,
getFontName()
public String getFontName()
Font
的字體外觀名稱。例如,Helvetica Bold 可以作為字體外觀名稱返回。使用 getFamily
可以獲取字體的系列名稱。使用 getName
可以獲取字體的邏輯名稱。
String
,表示此 Font
的字體外觀名稱。getFamily()
,
getName()
public String getFontName(Locale l)
Font
的字體外觀名稱(已經針對指定語言環境進行了本地化)。例如,Helvetica Fett 可以作為字體外觀名稱返回。使用 getFamily
可以獲取字體的系列名稱。
l
- 語言環境,要獲得該語言環境的字體外觀名稱
String
,表示字體外觀名稱(已經針對指定語言環境進行了本地化)。getFamily()
,
Locale
public int getStyle()
Font
的樣式。樣式可以為 PLAIN、BOLD、ITALIC 或 BOLD+ITALIC。
Font
的樣式isPlain()
,
isBold()
,
isItalic()
public int getSize()
Font
的磅值大小,捨入為整數。大多數使用者都熟悉使用磅值大小 的概念,它用於指定字體中字形的大小。磅值大小定義了單間距文本文檔中某行的基線到下一行的基線之間的測量。磅值大小是基於排字磅值 的,大約為 1/72 英吋。
Java(tm)2D API 規定:1 磅等於使用者坐標中的 1 個單位。當使用規範化變換將使用者空間坐標轉換為設備空間坐標時,72 個使用者空間單位等於設備空間中的 1 英吋。在這種情況下,1 磅就是 1/72 英吋。
Font
的磅值大小(以 1/72 英吋為單位)。getSize2D()
,
GraphicsConfiguration.getDefaultTransform()
,
GraphicsConfiguration.getNormalizingTransform()
public float getSize2D()
Font
的磅值大小(以 float
值表示)。
Font
的磅值大小(以 float
值表示)。getSize()
public boolean isPlain()
Font
物件的樣式是否為 PLAIN。
Font
樣式為 PLAIN,則返回 true
;否則返回 false
。getStyle()
public boolean isBold()
Font
物件的樣式是否為 BOLD。
Font
物件的樣式為 BOLD,則返回 true
;否則返回 false
。getStyle()
public boolean isItalic()
Font
物件的樣式是否為 ITALIC。
Font
物件的樣式為 ITALIC,則返回 true
;否則返回 false
。getStyle()
public boolean isTransformed()
Font
物件是否具有影響其大小以及 Size 屬性的變換。
Font
物件具有無標識的 AffineTransform 屬性,則返回 true
;否則返回 false
。getTransform()
public boolean hasLayoutAttributes()
public static Font getFont(String nm)
Font
物件。nm
被視為要獲得的系統屬性的名稱。然後,根據 Font.decode(String)
規範,將此屬性的 String
值解釋為一個 Font
物件。如果無法找到指定屬性,或者執行程式碼沒有讀取該屬性的權限,則返回 null。
nm
- 屬性名稱
Font
物件,如果沒有這樣的屬性存在,則返回 null。
NullPointerException
- 如果 nm 為 null。decode(String)
public static Font decode(String str)
str
參數所描述的 Font
。為了確保此方法返回所需的 Font,可以使用以下方式之一格式化 str
參數。
"PLAIN"
、"BOLD"
、"BOLDITALIC"
和 "ITALIC"
,pointsize 是磅值大小的正十進制整數表示形式。例如,如果想要的字體是 Arial、粗體、磅值大小為 18,則按以下方式調用此方法:"Arial-BOLD-18"。這等同於調用以下 Font 建構子:new Font("Arial", Font.BOLD, 18);
,值被解釋為建構子所指定的形式。
有效的尾部十進制欄位總是被解釋為 pointsize。因此,後跟十進制值的 fontname 不應該在只在 fontname 的格式中使用。
如果樣式名稱欄位不是有效的樣式字元串,則它被解釋為樣式名稱的一部分,並且使用預設樣式。
只有 ' ' 或 '-' 可以用來分隔輸入中的欄位。所標識的分隔符是最接近字元串末尾的字元,它將有效的 pointsize 或有效的樣式名稱與字元串的其餘部分分隔開來。Null(空)pointsize 和樣式欄位被視為有效欄位,具有該欄位的預設值。
有些字體名稱可以包括分隔符 ' ' 或 '-'。如果 str
不是由三部分構成,例如,style
或 pointsize
欄位不出現在 str
中,並且 fontname
還包含確定為分隔符的字元,則這些打算作為 fontname
一部分出現的字元也可以解釋為分隔符,因此字體名稱無法正確識別。
預設大小為 12,預設樣式為 PLAIN。如果 str
沒有指定有效大小,則返回的 Font
大小為 12。如果 str
沒有指定有效樣式,則返回的 Font 樣式為 PLAIN。如果沒有在 str
參數中指定有效的字體名稱,則此方法將返回系列名稱為 "Dialog" 的字體。要確定系統上可以使用哪些字體系列名稱,可以使用 GraphicsEnvironment.getAvailableFontFamilyNames()
方法。如果 str
為 null
,則返回的新 Font
的系列名稱為 "Dialog",大小為 12,樣式為 PLAIN。
str
- 字體名稱,或 null
str
描述的 Font
物件,如果 str
為 null
,則返回新的預設 Font
。getFamily()
public static Font getFont(String nm, Font font)
Font
。在 System
的 getProperty
方法中,第一個參數被視為要獲取的系統屬性的名稱。接著將此屬性的 String
值解釋為 Font
物件。
屬性值應該是 Font.decode(String)
所接受的形式之一。如果無法找到指定屬性,或者執行程式碼沒有讀取該屬性的權限,則返回 font
參數。
nm
- 不區分大小寫的屬性名稱font
- 如果沒有定義屬性 nm
,則為要返回的預設 Font
Font
值。
NullPointerException
- 如果 nm 為 null。decode(String)
public int hashCode()
Font
的雜湊碼。
Object
中的 hashCode
Font
的雜湊碼值。Object.equals(java.lang.Object)
,
Hashtable
public boolean equals(Object obj)
Font
物件與指定 Object
進行比較。
Object
中的 equals
obj
- 要比較的 Object
Font
物件,且描述的字體與此物件相同,則返回 true
;否則,返回 false
。Object.hashCode()
,
Hashtable
public String toString()
Font
物件轉換為 String
表示形式。
Object
中的 toString
Font
物件的 String
表示形式。public int getNumGlyphs()
Font
中的字形數量。此 Font
的字形程式碼,範圍從 0 到 getNumGlyphs()
- 1。
Font
的字形數量。public int getMissingGlyphCode()
Font
不具有指定的 unicode 字形時所使用的 glyphCode 程式碼點。
Font
的 glyphCode。public byte getBaselineFor(char c)
大字體可以支持不同的書寫系統,並且每個系統都可以使用不同的基線。字元參數確定要使用的書寫系統。客戶不應該假定所有字元都使用相同的基線。
c
- 用來標識書寫系統的字元
LineMetrics.getBaselineOffsets()
,
ROMAN_BASELINE
,
CENTER_BASELINE
,
HANGING_BASELINE
public Map<TextAttribute,?> getAttributes()
Font
中可用的字體屬性的映射。屬性包括諸如連字和字形替換之類別的事情。
Font
的屬性映射。public AttributedCharacterIterator.Attribute[] getAvailableAttributes()
Font
支持的所有屬性的鍵。這些屬性可以用來派生其他字體。
Font
支持的所有屬性的鍵。public Font deriveFont(int style, float size)
Font
物件並應用新樣式和大小,創建一個新 Font
物件。
style
- 新 Font
的樣式size
- 新 Font
的大小
Font
物件。public Font deriveFont(int style, AffineTransform trans)
Font
物件並應用新樣式和變換,創建一個新 Font
物件。
style
- 新 Font
的樣式trans
- 與新 Font
相關的 AffineTransform
Font
物件。
IllegalArgumentException
- 如果 trans
為 null
public Font deriveFont(float size)
Font
物件並應用新的大小,創建一個新 Font
物件。
size
- 新 Font
的大小。
Font
物件。public Font deriveFont(AffineTransform trans)
Font
物件並應用新的變換,創建一個新 Font
物件。
trans
- 與新 Font
相關的 AffineTransform
Font
物件。
IllegalArgumentException
- 如果 trans
為 null
public Font deriveFont(int style)
Font
物件,並應用新的樣式,創建一個新 Font
物件。
style
- 新 Font
的樣式
Font
物件。public Font deriveFont(Map<? extends AttributedCharacterIterator.Attribute,?> attributes)
Font
物件並應用新的字體屬性集,創建一個新 Font
物件。
attributes
- 為新 Font
所啟用的屬性映射
Font
物件。public boolean canDisplay(char c)
Font
是否具有指定字元的字形。
註:此方法無法處理增補字元。要支持所有 Unicode 字元,包括增補字元,可以使用 canDisplay(int)
方法或 canDisplayUpTo
方法。
c
- 需要字形的字元
Font
具有該字元的字形,則返回 true
;否則返回 false
。public boolean canDisplay(int codePoint)
Font
是否具有指定字元的字形。
codePoint
- 需要字形的字元(Unicode 程式碼點)。
Font
具有該字元的字形,則返回 true
;否則返回 false
。
IllegalArgumentException
- 如果程式碼點不是一個有效的 Unicode 程式碼點。Character.isValidCodePoint(int)
public int canDisplayUpTo(String str)
Font
是否可以顯示指定的 String
。對於使用 Unicode 編碼的字元串,知道特定字體是否可以顯示該字元串是很重要的。此方法返回 String
str
中的一個偏移量,這是此 Font
不使用缺少的字形程式碼就無法顯示的第一個字元。如果 Font
可以顯示所有字元,則返回 -1。
str
- 一個 String
物件
str
中的一個偏移量,指向 str
中此 Font
無法顯示的第一個字元;如果此 Font
可以顯示 str
中的所有字元,則返回 -1
。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
。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
。public float getItalicAngle()
Font
的斜角。斜角是與此 Font
的動作最比對的 caret 的反斜面。
Font
的 ITALIC 樣式的角度TextAttribute.POSTURE
public boolean hasUniformLineMetrics()
Font
是否具有統一的行規格。邏輯 Font
可以是復合字體,這意味著它由不同的物理字體組成,可以覆寫不同的程式碼範圍。其中每一種字體都可能有不同的 LineMetrics
。如果邏輯 Font
是單一字體,則規格將是統一的。
Font
具有統一的行規格,則返回 true
;否則返回 false
。public LineMetrics getLineMetrics(String str, FontRenderContext frc)
String
和 FontRenderContext
創建的 LineMetrics
物件。
str
- 指定的 String
frc
- 指定的 FontRenderContext
String
和 FontRenderContext
創建的 LineMetrics
物件。public LineMetrics getLineMetrics(String str, int beginIndex, int limit, FontRenderContext frc)
LineMetrics
物件。
str
- 指定的 String
beginIndex
- str
的初始偏移量limit
- str
的結束偏移量frc
- 指定的 FontRenderContext
LineMetrics
物件。public LineMetrics getLineMetrics(char[] chars, int beginIndex, int limit, FontRenderContext frc)
LineMetrics
物件。
chars
- 字元陣列beginIndex
- chars
的初始偏移量limit
- chars
的結束偏移量frc
- 指定的 FontRenderContext
LineMetrics
物件。public LineMetrics getLineMetrics(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc)
LineMetrics
物件。
ci
- 指定的 CharacterIterator
beginIndex
- ci
中的初始偏移量limit
- ci
的結束偏移量frc
- 指定的 FontRenderContext
LineMetrics
物件。public Rectangle2D getStringBounds(String str, FontRenderContext frc)
FontRenderContext
中指定 String
的邏輯邊界。邏輯邊界包含 origin、ascent、advance 和 height,其中包括了 leading。邏輯邊界並不總是包圍所有文本。例如,在某些語言和字體中,accent 標記可以位於 ascent 之上,或 descent 之下。要得到可視的邊界框(它包圍了所有文本),可以使用 TextLayout
的 getBounds
方法。
註:返回的邊界在相對於基線的坐標中(請參閱 class notes
)。
str
- 指定的 String
frc
- 指定的 FontRenderContext
Rectangle2D
,它是指定 FontRenderContext
中指定 String
的邊界框。FontRenderContext
,
createGlyphVector(java.awt.font.FontRenderContext, java.lang.String)
public Rectangle2D getStringBounds(String str, int beginIndex, int limit, FontRenderContext frc)
FontRenderContext
中指定 String
的邏輯邊界。邏輯邊界包含 origin、ascent、advance 和 height,其中包括了 leading。邏輯邊界並不總是包圍所有文本。例如,在某些語言和字體中,accent 標記可以位於 ascent 之上,或 descent 之下。要得到可視的邊界框(它包圍了所有文本),可以使用 TextLayout
的 getBounds
方法。
註:返回的邊界在相對於基線的坐標中(請參閱 class notes
)。
str
- 指定的 String
beginIndex
- str
的初始偏移量limit
- str
的結束偏移量frc
- 指定的 FontRenderContext
Rectangle2D
,它是指定 FontRenderContext
中指定 String
的邊界框。
IndexOutOfBoundsException
- 如果 beginIndex
小於零,或 limit
大於 str
的長度,或 beginIndex
大於 limit
。FontRenderContext
,
createGlyphVector(java.awt.font.FontRenderContext, java.lang.String)
public Rectangle2D getStringBounds(char[] chars, int beginIndex, int limit, FontRenderContext frc)
FontRenderContext
指定字元陣列的邏輯邊界。邏輯邊界包含 origin、ascent、advance 和 height,其中包括了 leading。邏輯邊界並不總是包圍所有文本。例如,在某些語言和字體中,accent 標記可以位於 ascent 之上,或 descent 之下。要得到可視的邊界框(它包圍了所有文本),可以使用 TextLayout
的 getBounds
方法。
註:返回的邊界在相對於基線的坐標中(請參閱 class notes
)。
chars
- 字元陣列beginIndex
- 字元陣列的初始偏移量limit
- 字元陣列的結束偏移量frc
- 指定的 FontRenderContext
Rectangle2D
,它是指定 FontRenderContext
中指定字元陣列的邊界框。
IndexOutOfBoundsException
- 如果 beginIndex
小於零,或 limit
大於 chars
的長度,或 beginIndex
大於 limit
。FontRenderContext
,
createGlyphVector(java.awt.font.FontRenderContext, java.lang.String)
public Rectangle2D getStringBounds(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc)
FontRenderContext
中針對指定 CharacterIterator
進行索引的字元的邏輯邊界。邏輯邊界包含 origin、ascent、advance 和 height,其中包括了 leading。邏輯邊界並不總是包圍所有文本。例如,在某些語言和字體中,accent 標記可以位於 ascent 之上,或 descent 之下。要得到可視的邊界框(它包圍了所有文本),可以使用 TextLayout
的 getBounds
方法。
註:返回的邊界在相對於基線的坐標中(請參閱 class notes
)。
ci
- 指定的 CharacterIterator
beginIndex
- ci
中的初始偏移量limit
- ci
中的結束偏移量frc
- 指定的 FontRenderContext
Rectangle2D
,它是指定 FontRenderContext
中針對指定 CharacterIterator
進行索引的字元的邊界框。
IndexOutOfBoundsException
- 如果 beginIndex
小於 ci
的起始索引,或 limit
大於 ci
的結束索引,或 beginIndex
大於 limit
FontRenderContext
,
createGlyphVector(java.awt.font.FontRenderContext, java.lang.String)
public Rectangle2D getMaxCharBounds(FontRenderContext frc)
FontRenderContext
中的字元的邊界。
註:返回的邊界在相對於基線的坐標中(請參閱 class notes
)。
frc
- 指定的 FontRenderContext
Rectangle2D
,它是具有最大邊界的字元的邊界框。public GlyphVector createGlyphVector(FontRenderContext frc, String str)
Font
中的 Unicode cmap 將字元一一映射到字形,從而創建一個 GlyphVector
。除了字形到字元的映射之外,此方法不做任何其他處理。這意味著,此方法對於某些文稿是無用的,如 Arabic、Hebrew、Thai 和 Indic,它們要求進行重排序、整形或連字替換。
frc
- 指定的 FontRenderContext
str
- 指定的 String
String
和指定 FontRenderContext
創建的新 GlyphVector
。public GlyphVector createGlyphVector(FontRenderContext frc, char[] chars)
Font
中的 Unicode cmap 將字元一一映射到字形,從而創建一個 GlyphVector
。除了字形到字元的映射之外,此方法不做任何其他處理。這意味著,此方法對於某些文稿是無用的,如 Arabic、Hebrew、Thai 和 Indic,它們要求進行重排序、整形或連字替換。
frc
- 指定的 FontRenderContext
chars
- 指定的字元陣列
FontRenderContext
創建的 GlyphVector
。public GlyphVector createGlyphVector(FontRenderContext frc, CharacterIterator ci)
Font
中的 Unicode cmap 將指定字元一一映射到字形,從而創建一個 GlyphVector
。除了字形到字元的映射之外,此方法不做任何其他處理。這意味著,此方法對於某些文稿是無用的,如 Arabic、Hebrew、Thai 和 Indic,它們要求進行重排序、整形或連字替換。
frc
- 指定的 FontRenderContext
ci
- 指定的 CharacterIterator
CharacterIterator
和指定 FontRenderContext
創建的 GlyphVector
。public GlyphVector createGlyphVector(FontRenderContext frc, int[] glyphCodes)
Font
中的 Unicode cmap 將字元一一映射到字形,從而創建一個 GlyphVector
。除了字形到字元的映射之外,此方法不做任何其他處理。這意味著,此方法對於某些文稿是無用的,如 Arabic、Hebrew、Thai 和 Indic,它們要求進行重排序、整形或連字替換。
frc
- 指定的 FontRenderContext
glyphCodes
- 指定的整數陣列
FontRenderContext
創建的 GlyphVector
。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 超出了邊界Bidi
,
LAYOUT_LEFT_TO_RIGHT
,
LAYOUT_RIGHT_TO_LEFT
,
LAYOUT_NO_START_CONTEXT
,
LAYOUT_NO_LIMIT_CONTEXT
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。