|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.awt.FontMetrics
public abstract class FontMetrics
FontMetrics
類別定義字體規格物件,該物件封裝將在特定螢幕上呈現特定字體的有關資訊。
子類別注意事項:由於當中很多方法都形成關閉的、相互遞歸的循環,所以必須注意,在每個這樣的循環中至少要實作其中一個方法,以防止在使用子類別時產生無窮遞歸。特別建議,至少要覆寫以下方法集合以確保正確性,並防止無窮遞歸(雖然其他子集也可以)。
注意,這些方法的實作效率低下,因此通常利用更高效的特定於工具套件的實作覆寫它們。
當應用程序要求將字元放置在 (x, y) 位置時,放置字元的方式是使其參考點(附圖中顯示的點)放置在該位置。參考點指定一條水平線,稱為字元的基線 (baseline)。在正常的列印中,字元的基線應該對齊。
此外,字體中的每個字元都具有 ascent、descent 和 advance width 屬性。ascent 是字元超出基線之上的距離。descent 是字元超出基線以下的距離。advance width 指示 AWT 應該放置下一個字元的位置。
字元陣列或字元串也可以具有 ascent、descent 和 advance width 屬性。陣列的 ascent 是陣列中所有字元的最大 ascent。descent 是陣列中所有字元的最大 descent。advance width 是字元陣列中每個字元的 advance width 之和。String
的 advance 是 String
沿基線的距離。此距離是 String
居中或右對齊應該使用的 width。
注意,String
的 advance 不一定是每個字元單獨測量的 advance 之和,因為字元的 width 可隨上下文變動。例如,在 Arabic 文本中,可以更改一個字元的形狀,以連接到其他字元。而在有些文稿中,某些字元序列可以由單個形狀(稱為連字)表示。單獨測量的字元並不能說明這些轉換。
字體規格是基線相關的,意味著它們通常是獨立應用於該字體的循環(模可能的網格提示作用)。請參閱 Font
。
Font
,
序列化表格欄位摘要 | |
---|---|
protected Font |
font
實際的 Font ,字體規格是由此創建的。 |
建構子摘要 | |
---|---|
protected |
FontMetrics(Font font)
創建一個新 FontMetrics 物件,用於尋找該 Font 中關於指定 Font 和特定字元字形的 height 和 width 資訊。 |
方法摘要 | |
---|---|
int |
bytesWidth(byte[] data,
int off,
int len)
返回顯示此 Font 中指定位元組陣列的總 advance width。 |
int |
charsWidth(char[] data,
int off,
int len)
返回顯示此 Font 中指定字元陣列的總 advance width。 |
int |
charWidth(char ch)
返回此 Font 中指定字元的 advance width。 |
int |
charWidth(int codePoint)
返回此 Font 中指定字元的 advance width。 |
int |
getAscent()
確定此 FontMetrics 物件所描述的 Font 的 font ascent。 |
int |
getDescent()
確定此 FontMetrics 物件所描述的 Font 的 font descent。 |
Font |
getFont()
獲取此 FontMetrics 物件所描述的 Font 。 |
FontRenderContext |
getFontRenderContext()
獲取此 FontMetrics 物件用來測量文本的 FontRenderContext 。 |
int |
getHeight()
獲取此 Font 中文本行的標準 height。 |
int |
getLeading()
確定此 FontMetrics 物件所描述的 Font 的標準行間距。 |
LineMetrics |
getLineMetrics(char[] chars,
int beginIndex,
int limit,
Graphics context)
返回指定 Graphics 上下文中指定字元陣列的 LineMetrics 物件。 |
LineMetrics |
getLineMetrics(CharacterIterator ci,
int beginIndex,
int limit,
Graphics context)
返回指定 Graphics 上下文中指定 CharacterIterator 的 LineMetrics 物件。 |
LineMetrics |
getLineMetrics(String str,
Graphics context)
返回指定 Graphics 上下文中指定 String 的 LineMetrics 物件。 |
LineMetrics |
getLineMetrics(String str,
int beginIndex,
int limit,
Graphics context)
返回指定 Graphics 上下文中指定 String 的 LineMetrics 物件。 |
int |
getMaxAdvance()
獲取此 Font 中所有字元的最大 advance width。 |
int |
getMaxAscent()
確定此 FontMetrics 物件所描述的 Font 的最大 ascent。 |
Rectangle2D |
getMaxCharBounds(Graphics context)
返回指定 Graphics 上下文中具有最大邊界的字元的邊界。 |
int |
getMaxDecent()
已過時。 從 JDK version 1.1.1 開始,由 getMaxDescent() 取代。 |
int |
getMaxDescent()
確定此 FontMetrics 物件所描述的 Font 的最大 descent。 |
Rectangle2D |
getStringBounds(char[] chars,
int beginIndex,
int limit,
Graphics context)
返回指定 Graphics 上下文中指定字元陣列的邊界。 |
Rectangle2D |
getStringBounds(CharacterIterator ci,
int beginIndex,
int limit,
Graphics context)
返回用指定 Graphics 上下文中指定 CharacterIterator 進行索引的字元的邊界。 |
Rectangle2D |
getStringBounds(String str,
Graphics context)
返回指定 Graphics 上下文中指定 String 的邊界。 |
Rectangle2D |
getStringBounds(String str,
int beginIndex,
int limit,
Graphics context)
返回指定 Graphics 上下文中指定 String 的邊界。 |
int[] |
getWidths()
獲取此 Font 中前 256 個字元的 advance width。 |
boolean |
hasUniformLineMetrics()
檢查 Font 是否具有統一的行規格。 |
int |
stringWidth(String str)
返回此 Font 中指定 String 的總 advance width。 |
String |
toString()
返回此 FontMetrics 物件的值的 String 表示形式。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
欄位詳細資訊 |
---|
protected Font font
Font
,字體規格是由此創建的。它不能為 null。
getFont()
建構子詳細資訊 |
---|
protected FontMetrics(Font font)
FontMetrics
物件,用於尋找該 Font
中關於指定 Font
和特定字元字形的 height 和 width 資訊。
font
- Font
Font
方法詳細資訊 |
---|
public Font getFont()
FontMetrics
物件所描述的 Font
。
FontMetrics
物件所描述的 Font
。public FontRenderContext getFontRenderContext()
FontMetrics
物件用來測量文本的 FontRenderContext
。
注意,此類別中帶有 Graphics
參數的方法測量使用該 Graphics
物件的 FontRenderContext
文本,而非此 FontRenderContext
。
FontMetrics
物件使用的 FontRenderContext
。public int getLeading()
FontMetrics
物件所描述的 Font
的標準行間距。標準行間距(或行間間隔)是保留在一個文本行的 descent 和下一個文本行的 ascent 之間的邏輯間隔量。計算 height 規格時要包括這一額外間隔。
Font
的標準行間距。getHeight()
,
getAscent()
,
getDescent()
public int getAscent()
FontMetrics
物件所描述的 Font
的 font ascent。font ascent 是字體基線到大多數字母數字字元頂部的距離。在 Font
中,有些字元可能擴展超過 font ascent 線。
Font
的 font ascent。getMaxAscent()
public int getDescent()
FontMetrics
物件所描述的 Font
的 font descent。font descent 是字體基線到大多數字母數字字元底部的距離。在 Font
中,有些字元可能擴展到 font descent 線之下。
Font
的 font descent。getMaxDescent()
public int getHeight()
getLeading()
,
getAscent()
,
getDescent()
public int getMaxAscent()
FontMetrics
物件所描述的 Font
的最大 ascent。字元超出字體基線的距離不會大於此 height。
Font
中所有字元的最大 ascent。getAscent()
public int getMaxDescent()
FontMetrics
物件所描述的 Font
的最大 descent。字元低於字體基線的距離不會大於此 height。
Font
中所有字元的最大 descent。getDescent()
@Deprecated public int getMaxDecent()
getMaxDescent()
取代。
Font
中所有字元的最大 descent。getMaxDescent()
public int getMaxAdvance()
Font
中所有字元的最大 advance width。advance 是字元串基線上最左邊的點到最右邊的點之間的距離。String
的 advance 不一定是它所有字元的 advance 之和。
Font
中所有字元的最大 advance width;如果最大 advance width 未知,則返回 -1
。public int charWidth(int codePoint)
Font
中指定字元的 advance width。advance 是字元基線上最左邊的點到最右邊的點之間的距離。注意,String
的 advance 不一定是它所有字元的 advance 之和。
此方法沒有驗證指定的字元是否為一個有效的 Unicode 程式碼點。如有必要,調用者必須使用 Character.isValidCodePoint
驗證字元值。
codePoint
- 要測量的字元(Unicode 程式碼點)
FontMetrics
物件所描述的 Font
中指定字元的 advance width。charsWidth(char[], int, int)
,
stringWidth(String)
public int charWidth(char ch)
Font
中指定字元的 advance width。advance 是字元基線上最左邊的點到最右邊的點之間的距離。注意,String
的 advance 不一定是它所有字元的 advance 之和。
註: 此方法無法處理增補字元。要支持包括增補字元在內的所有 Unicode 字元,請使用 charWidth(int)
方法。
ch
- 要測量的字元
FontMetrics
物件所描述的 Font
中指定字元的 advance width。charsWidth(char[], int, int)
,
stringWidth(String)
public int stringWidth(String str)
Font
中指定 String
的總 advance width。advance 是字元串基線上最左邊的點到最右邊的點之間的距離。
注意,code>String 的 advance 不一定是它所有字元的 advance 之和。
str
- 要測量的 String
FontMetrics
描述的 Font
中指定 String
的 advance width。
NullPointerException
- 如果 str 為 null。bytesWidth(byte[], int, int)
,
charsWidth(char[], int, int)
,
getStringBounds(String, Graphics)
public int charsWidth(char[] data, int off, int len)
Font
中指定字元陣列的總 advance width。advance 是字元串基線上最左邊的點到最右邊的點之間的距離。String
的 advance 不一定是它所有字元的 advance 之和。這等同於測量 String
指定範圍內的字元。
data
- 要測量的字元陣列off
- 陣列中字元的起始偏移量len
- 陣列中要測量的字元數
FontMetrics
物件所描述的字體中指定 char
陣列子陣列的 advance width。
NullPointerException
- 如果 data
為 null。
IndexOutOfBoundsException
- 如果 off
和 len
參數索引字元超出 data
陣列範圍。charWidth(int)
,
charWidth(char)
,
bytesWidth(byte[], int, int)
,
stringWidth(String)
public int bytesWidth(byte[] data, int off, int len)
Font
中指定位元組陣列的總 advance width。advance 是字元串基線上最左邊的點到最右邊的點之間的距離。String
的 advance 不一定是它所有字元的 advance 之和。這等同於測量 String
指定範圍內的字元。
data
- 要測量的位元組陣列off
- 陣列中位元組的起始偏移量len
- 陣列中要測量的位元組數
FontMetrics
物件所描述的 Font
中指定 byte
陣列的子陣列的 advance width。
NullPointerException
- 如果 data
為 null。
IndexOutOfBoundsException
- 如果 off
和 len
參數索引位元組超出 data
陣列範圍。charsWidth(char[], int, int)
,
stringWidth(String)
public int[] getWidths()
Font
中前 256 個字元的 advance width。advance 是字元基線上最左邊的點到最右邊的點之間的距離。注意,String
的 advance 不一定是它所有字元的 advance 之和。
FontMetrics
物件所描述的 Font
中字元的 advance width。public boolean hasUniformLineMetrics()
Font
是否具有統一的行規格。復合字體可能由幾種不同的字體組成,涉及到各種字元集。在此情況下,FontLineMetrics
物件是不統一的。不同的字體可能有不同的 ascent、descent、metrics 等等。對於行測量和行斷開來說,此資訊有時是必需的。
true
;否則返回 false
。Font.hasUniformLineMetrics()
public LineMetrics getLineMetrics(String str, Graphics context)
Graphics
上下文中指定 String
的 LineMetrics
物件。
str
- 指定的 String
context
- 指定的 Graphics
上下文
String
和 Graphics
上下文創建的 LineMetrics
物件。Font.getLineMetrics(String, FontRenderContext)
public LineMetrics getLineMetrics(String str, int beginIndex, int limit, Graphics context)
Graphics
上下文中指定 String
的 LineMetrics
物件。
str
- 指定的 String
beginIndex
- str
的初始偏移量limit
- str
的結束偏移量context
- 指定的 Graphics
上下文
String
和 Graphics
上下文創建的 LineMetrics
物件。Font.getLineMetrics(String, int, int, FontRenderContext)
public LineMetrics getLineMetrics(char[] chars, int beginIndex, int limit, Graphics context)
Graphics
上下文中指定字元陣列的 LineMetrics
物件。
chars
- 指定的字元陣列beginIndex
- chars
的初始偏移量limit
- chars
的結束偏移量context
- 指定的 Graphics
上下文
Graphics
上下文創建的 LineMetrics
物件。Font.getLineMetrics(char[], int, int, FontRenderContext)
public LineMetrics getLineMetrics(CharacterIterator ci, int beginIndex, int limit, Graphics context)
Graphics
上下文中指定 CharacterIterator
的 LineMetrics
物件。
ci
- 指定的 CharacterIterator
beginIndex
- ci
中的初始偏移量limit
- ci
的結束索引context
- 指定的 Graphics
上下文
LineMetrics
物件。Font.getLineMetrics(CharacterIterator, int, int, FontRenderContext)
public Rectangle2D getStringBounds(String str, Graphics context)
Graphics
上下文中指定 String
的邊界。邊界用來對 String
進行佈局。
注意:返回的邊界在基線相關的坐標內
(請參閱類別註釋
)。
str
- 指定的 String
context
- 指定的 Graphics
上下文
Rectangle2D
,它是指定 Graphics
上下文中指定 String
的邊界框。Font.getStringBounds(String, FontRenderContext)
public Rectangle2D getStringBounds(String str, int beginIndex, int limit, Graphics context)
Graphics
上下文中指定 String
的邊界。邊界用來對 String
進行佈局。
注意:返回的邊界在基線相關的坐標內
(請參閱類別註釋
)。
str
- 指定的 String
beginIndex
- str
的起始偏移量limit
- str
的結束偏移量context
- 指定的 Graphics
上下文
Rectangle2D
,它是指定 String
上下文中指定 Graphics
的邊界框。Font.getStringBounds(String, int, int, FontRenderContext)
public Rectangle2D getStringBounds(char[] chars, int beginIndex, int limit, Graphics context)
Graphics
上下文中指定字元陣列的邊界。邊界用來對 String
進行佈局,String
是使用指定的字元陣列、beginIndex
和 limit
創建的。
注意:返回的邊界在基線相關的坐標內
(請參閱類別註釋
)。
chars
- 字元陣列beginIndex
- 字元陣列的初始偏移量limit
- 字元陣列的結束偏移量context
- 指定的 Graphics
上下文
Rectangle2D
,它是指定 Graphics
上下文中指定字元陣列的邊界框。Font.getStringBounds(char[], int, int, FontRenderContext)
public Rectangle2D getStringBounds(CharacterIterator ci, int beginIndex, int limit, Graphics context)
Graphics
上下文中指定 CharacterIterator
進行索引的字元的邊界。
注意:返回的邊界在基線相關的坐標內(請參閱類別註釋
)。
ci
- 指定的 CharacterIterator
beginIndex
- ci
中的初始偏移量limit
- ci
的結束索引context
- 指定的 Graphics
上下文
Rectangle2D
,它是用指定 Graphics
上下文中的指定 CharacterIterator
進行索引的字元的邊界框。Font.getStringBounds(CharacterIterator, int, int, FontRenderContext)
public Rectangle2D getMaxCharBounds(Graphics context)
Graphics
上下文中具有最大邊界的字元的邊界。
context
- 指定的 Graphics
上下文
Rectangle2D
,它是具有最大邊界的字元的邊界框。Font.getMaxCharBounds(FontRenderContext)
public String toString()
FontMetrics
物件的值的 String
表示形式。
Object
中的 toString
FontMetrics
物件的 String
表示形式。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。