|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjava.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 - FontFont| 方法詳細資訊 |
|---|
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 - 指定的 Stringcontext - 指定的 Graphics 上下文
String 和 Graphics 上下文創建的 LineMetrics 物件。Font.getLineMetrics(String, FontRenderContext)
public LineMetrics getLineMetrics(String str,
int beginIndex,
int limit,
Graphics context)
Graphics 上下文中指定 String 的 LineMetrics 物件。
str - 指定的 StringbeginIndex - 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 - 指定的 CharacterIteratorbeginIndex - ci 中的初始偏移量limit - ci 的結束索引context - 指定的 Graphics 上下文
LineMetrics 物件。Font.getLineMetrics(CharacterIterator, int, int, FontRenderContext)
public Rectangle2D getStringBounds(String str,
Graphics context)
Graphics 上下文中指定 String 的邊界。邊界用來對 String 進行佈局。
注意:返回的邊界在基線相關的坐標內
(請參閱類別註釋)。
str - 指定的 Stringcontext - 指定的 Graphics 上下文
Rectangle2D,它是指定 Graphics 上下文中指定 String 的邊界框。Font.getStringBounds(String, FontRenderContext)
public Rectangle2D getStringBounds(String str,
int beginIndex,
int limit,
Graphics context)
Graphics 上下文中指定 String 的邊界。邊界用來對 String 進行佈局。
注意:返回的邊界在基線相關的坐標內
(請參閱類別註釋)。
str - 指定的 StringbeginIndex - 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 - 指定的 CharacterIteratorbeginIndex - 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 中的 toStringFontMetrics 物件的 String 表示形式。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。