JavaTM 2 Platform
Standard Ed. 6

java.awt.font
類別 GlyphVector

java.lang.Object
  繼承者 java.awt.font.GlyphVector
所有已實作的介面:
Cloneable

public abstract class GlyphVector
extends Object
implements Cloneable

GlyphVector 物件是一個字形的集合,包含在轉換坐標空間中放置每個字形的幾何資訊,該坐標空間對應於最終要顯示 GlyphVector 的設備。

GlyphVector 不嘗試對它包含的字形序列進行任何解釋。序列中相鄰字形之間的關係只用於確定在可視坐標空間中的字形放置。

GlyphVector 的實例由 Font 創建。

在一個可以對文本的中間表示形式進行快取記憶體的文本處理應用程序中,將字元的可視化表示形式呈現給使用者最快的方法是,創建並隨後快取記憶體在呈現期間使用的 GlyphVector

GlyphVector 只與一個 Font 關聯,可以提供僅與此 Font 相關的有用資料。另外,從 GlyphVector 獲得的規格通常不是幾何上可縮放的,因為像素化和間隔與 Font 中的網格適應演算法相關。為了便於精確測量 GlyphVector 及其份量字形,在創建 GlyphVector 時必須指定縮放轉換、anti-alias 網要和 fractional metrics 網要。這些特性可以從目標設備派生得到。

對於 GlyphVector 中的每個字形,您可以獲得:

改變創建 GlyphVector 所使用的資料不會改變 GlyphVector 的狀態。

該類別提供了一些方法來調整 GlyphVector 內字形位置。這些方法最適合為顯示字形而正在執行調整操作的應用程序。

該類別提供了一些方法來轉換 GlyphVector 中各個字形。這些方法主要用於特殊效果。

該類別提供了一些方法來返回整個 GlyphVectorGlyphVector 中各個字形的可視的、邏輯的和像素的邊界。

該類別還提供了一些方法來返回 GlyphVectorGlyphVector 中各個字形的 Shape

另請參見:
Font, GlyphMetrics, TextLayout

欄位摘要
static int FLAG_COMPLEX_GLYPHS
          與 getLayoutFlags 一起使用的標誌,指示此 GlyphVector 具有從字形到字元的複雜映射關係(此映射並非嚴格按照與排列方向比對的升序或降序順序將字形一一映射到字元)。
static int FLAG_HAS_POSITION_ADJUSTMENTS
          與 getLayoutFlags 一起使用的標誌,指示此 GlyphVector 調整了位置。
static int FLAG_HAS_TRANSFORMS
          與 getLayoutFlags 一起使用的標誌,指示此 GlyphVector 的每個字形都有轉換。
static int FLAG_MASK
          getLayoutFlags 支持標誌的遮罩碼。
static int FLAG_RUN_RTL
          與 getLayoutFlags 一起使用的標誌,指示此 GlyphVector 具有從右到左的排列方向。
 
建構子摘要
GlyphVector()
           
 
方法摘要
abstract  boolean equals(GlyphVector set)
          測試指定的 GlyphVector 是否恰好等於此 GlyphVector
abstract  Font getFont()
          返回與此 GlyphVector 關聯的 Font
abstract  FontRenderContext getFontRenderContext()
          返回與此 GlyphVector 關聯的 FontRenderContext
 int getGlyphCharIndex(int glyphIndex)
          返回指定字形的字元索引。
 int[] getGlyphCharIndices(int beginGlyphIndex, int numEntries, int[] codeReturn)
          返回指定字形的字元索引。
abstract  int getGlyphCode(int glyphIndex)
          返回指定字形的 glyphcode。
abstract  int[] getGlyphCodes(int beginGlyphIndex, int numEntries, int[] codeReturn)
          返回指定字形的 glyphcode 陣列。
abstract  GlyphJustificationInfo getGlyphJustificationInfo(int glyphIndex)
          返回此 GlyphVector 中指定索引處的字形調整資訊。
abstract  Shape getGlyphLogicalBounds(int glyphIndex)
          返回此 GlyphVector 中指定字形的邏輯邊界。
abstract  GlyphMetrics getGlyphMetrics(int glyphIndex)
          返回此 GlyphVector 中指定索引處的字形規格。
abstract  Shape getGlyphOutline(int glyphIndex)
          返回其內部區域與此 GlyphVector 中指定字形的可視表示形式對應的 Shape
 Shape getGlyphOutline(int glyphIndex, float x, float y)
          返回一個 Shape,其內部區域與此 GlyphVector 中指定字形的可視表示形式對應,並偏移到 x、y。
 Rectangle getGlyphPixelBounds(int index, FontRenderContext renderFRC, float x, float y)
          返回當此 GlyphVectorGraphics 中以給定 FontRenderContext 在給定位置呈現時,index 處字形的像素邊界。
abstract  Point2D getGlyphPosition(int glyphIndex)
          返回與此 GlyphVector 原點對應的指定字形的位置。
abstract  float[] getGlyphPositions(int beginGlyphIndex, int numEntries, float[] positionReturn)
          返回包含指定字形位置的陣列。
abstract  AffineTransform getGlyphTransform(int glyphIndex)
          返回此 GlyphVector 中指定字形的轉換。
abstract  Shape getGlyphVisualBounds(int glyphIndex)
          返回 GlyphVector 中指定字形的可視邊界。
 int getLayoutFlags()
          返回描述該 GlyphVector 全體狀態的標誌。
abstract  Rectangle2D getLogicalBounds()
          返回此 GlyphVector 的邏輯邊界。
abstract  int getNumGlyphs()
          返回此 GlyphVector 中的字形數。
abstract  Shape getOutline()
          返回其內部區域與此 GlyphVector 的可視表示形式對應的 Shape
abstract  Shape getOutline(float x, float y)
          返回在 x、y 處呈現時,其內部區域與此 GlyphVector 的可視表示形式對應的 Shape
 Rectangle getPixelBounds(FontRenderContext renderFRC, float x, float y)
          返回此 GlyphVector 在圖形中以給定 FontRenderContext 在給定位置處呈現時的像素邊界。
abstract  Rectangle2D getVisualBounds()
          返回此 GlyphVector 的可視邊界,可視邊界是此 GlyphVector 輪廓的邊界框。
abstract  void performDefaultLayout()
          為此 GlyphVector 中的每個字形分派預設位置。
abstract  void setGlyphPosition(int glyphIndex, Point2D newPos)
          設置此 GlyphVector 中的指定字形位置。
abstract  void setGlyphTransform(int glyphIndex, AffineTransform newTX)
          設置此 GlyphVector 中指定字形的轉換。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

欄位詳細資訊

FLAG_HAS_TRANSFORMS

public static final int FLAG_HAS_TRANSFORMS
與 getLayoutFlags 一起使用的標誌,指示此 GlyphVector 的每個字形都有轉換。

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

FLAG_HAS_POSITION_ADJUSTMENTS

public static final int FLAG_HAS_POSITION_ADJUSTMENTS
與 getLayoutFlags 一起使用的標誌,指示此 GlyphVector 調整了位置。該標誌為 true 時,字形位置與該字形累加的預設 advance 不比對(例如,已完成字距調整)。

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

FLAG_RUN_RTL

public static final int FLAG_RUN_RTL
與 getLayoutFlags 一起使用的標誌,指示此 GlyphVector 具有從右到左的排列方向。這是指字形到字元的映射關係,並不意味著該字形的可視位置一定要按此順序,但通常如此。

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

FLAG_COMPLEX_GLYPHS

public static final int FLAG_COMPLEX_GLYPHS
與 getLayoutFlags 一起使用的標誌,指示此 GlyphVector 具有從字形到字元的複雜映射關係(此映射並非嚴格按照與排列方向比對的升序或降序順序將字形一一映射到字元)。

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

FLAG_MASK

public static final int FLAG_MASK
getLayoutFlags 支持標誌的遮罩碼。只應測試該遮罩碼包含的位。

從以下版本開始:
1.4
另請參見:
常數欄位值
建構子詳細資訊

GlyphVector

public GlyphVector()
方法詳細資訊

getFont

public abstract Font getFont()
返回與此 GlyphVector 關聯的 Font

返回:
用於創建此 GlyphVectorFont
另請參見:
Font

getFontRenderContext

public abstract FontRenderContext getFontRenderContext()
返回與此 GlyphVector 關聯的 FontRenderContext

返回:
用於創建此 GlyphVectorFontRenderContext
另請參見:
FontRenderContext, Font

performDefaultLayout

public abstract void performDefaultLayout()
為此 GlyphVector 中的每個字形分派預設位置。這會破壞此 GlyphVector 初始佈局期間所產生的資訊。


getNumGlyphs

public abstract int getNumGlyphs()
返回此 GlyphVector 中的字形數。

返回:
GlyphVector 中的字形數。

getGlyphCode

public abstract int getGlyphCode(int glyphIndex)
返回指定字形的 glyphcode。除創建此 GlyphVectorFont 物件之外,此返回值對其他物件均無意義。

參數:
glyphIndex - 此 GlyphVector 中的索引,它與從中檢索 glyphcode 的字形對應。
返回:
指定 glyphIndex 處字形的 glyphcode。
拋出:
IndexOutOfBoundsException - 如果 glyphIndex 小於 0,或者大於等於此 GlyphVector 中的字形數

getGlyphCodes

public abstract int[] getGlyphCodes(int beginGlyphIndex,
                                    int numEntries,
                                    int[] codeReturn)
返回指定字形的 glyphcode 陣列。除用來創建此 GlyphVectorFont 之外,此返回值的內容對其他物件均無意義。處理 glyphcode 時,此方法使用便捷,性能優越。如果沒有陣列傳入,則創建新的陣列。

參數:
beginGlyphIndex - 此 GlyphVector 中的索引,從此處開始檢索 glyphcode
numEntries - 要檢索的 glyphcode 數
codeReturn - 接收 glyphcode 然後返回的陣列
返回:
指定字形的 glyphcode 陣列。
拋出:
IllegalArgumentException - 如果 numEntries 小於 0
IndexOutOfBoundsException - 如果 beginGlyphIndex 小於 0
IndexOutOfBoundsException - 如果 beginGlyphIndexnumEntries 的和大於此 GlyphVector 中的字形數

getGlyphCharIndex

public int getGlyphCharIndex(int glyphIndex)
返回指定字形的字元索引。字元索引是該字形表示的第一個邏輯字元的索引。預設實作假定字形和字元是從左到右一一對應的映射關係。

參數:
glyphIndex - 該字形的索引
返回:
該字形表示的第一個字元索引
從以下版本開始:
1.4

getGlyphCharIndices

public int[] getGlyphCharIndices(int beginGlyphIndex,
                                 int numEntries,
                                 int[] codeReturn)
返回指定字形的字元索引。字元索引是該字形表示的第一個邏輯字元的索引。按字形順序返回索引。預設實作為每個字形調用 getGlyphCharIndex,出於性能的考慮,子類別可能要覆寫此實作。在處理 glyphcode 時,此方法使用便捷,性能優越。如果沒有陣列傳入,則創建新的陣列。

參數:
beginGlyphIndex - 第一個字形的索引
numEntries - 字形索引數
codeReturn - 接收返回字元索引的陣列
返回:
字元索引的陣列,每個字形一個字元索引。
從以下版本開始:
1.4

getLogicalBounds

public abstract Rectangle2D getLogicalBounds()
返回此 GlyphVector 的邏輯邊界。相對於視覺相鄰的 GlyphVector 物件定位此 GlyphVector 時使用此方法。

返回:
一個 Rectangle2D,它是此 GlyphVector 的邏輯邊界。

getVisualBounds

public abstract Rectangle2D getVisualBounds()
返回此 GlyphVector 的可視邊界,可視邊界是此 GlyphVector 輪廓的邊界框。由於像素的光柵化和對齊方式,此框可能沒有包圍受呈現此 GlyphVector 影響的所有像素。

返回:
一個 Rectangle2D,它是此 GlyphVector 的邊界框。

getPixelBounds

public Rectangle getPixelBounds(FontRenderContext renderFRC,
                                float x,
                                float y)
返回此 GlyphVector 在圖形中以給定 FontRenderContext 在給定位置處呈現時的像素邊界。renderFRC 無需與此 GlyphVectorFontRenderContext 相同,可以為 null。如果為 null,則使用此 GlyphVectorFontRenderContext。預設實作返回可視邊界、x 和 y 的偏移量,並捨入為下一個整數值(即返回包含可視邊界的整數矩形),並忽略 FRC。子類別應覆寫此方法。

參數:
renderFRC - GraphicsFontRenderContext
x - 呈現此 GlyphVector 處的 x 坐標。
y - 呈現此 GlyphVector 處的 y 坐標。
返回:
包圍受影響像素的 Rectangle
從以下版本開始:
1.4

getOutline

public abstract Shape getOutline()
返回其內部區域與此 GlyphVector 的可視表示形式對應的 Shape

返回:
GlyphVector 輪廓的 Shape

getOutline

public abstract Shape getOutline(float x,
                                 float y)
返回在 x、y 處呈現時,其內部區域與此 GlyphVector 的可視表示形式對應的 Shape

參數:
x - 此 GlyphVector 的 X 坐標。
y - 此 GlyphVector 的 Y 坐標。
返回:
在指定坐標位置呈現時,此 GlyphVector 輪廓的 Shape

getGlyphOutline

public abstract Shape getGlyphOutline(int glyphIndex)
返回其內部區域與此 GlyphVector 中指定字形的可視表示形式對應的 Shape。此方法返回的輪廓位於各個字形的原點周圍。

參數:
glyphIndex - 此 GlyphVector 的索引
返回:
一個 Shape,它是該 GlyphVector 中指定 glyphIndex 處的字形輪廓。
拋出:
IndexOutOfBoundsException - 如果 glyphIndex 小於 0,或者大於等於此 GlyphVector 中的字形數

getGlyphOutline

public Shape getGlyphOutline(int glyphIndex,
                             float x,
                             float y)
返回一個 Shape,其內部區域與此 GlyphVector 中指定字形的可視表示形式對應,並偏移到 x、y。此方法返回的輪廓位於各個字形的原點周圍。

參數:
glyphIndex - 此 GlyphVector 的索引
x - 此 GlyphVector 的坐標的 X 坐標
y - 此 GlyphVector 的坐標的 Y 坐標
返回:
一個 Shape,它是在指定的坐標處呈現時,此 GlyphVector 中指定 glyphIndex 處的字形輪廓。
拋出:
IndexOutOfBoundsException - 如果 glyphIndex 小於 0,或者大於等於此 GlyphVector 中的字形數
從以下版本開始:
1.4

getGlyphPosition

public abstract Point2D getGlyphPosition(int glyphIndex)
返回與此 GlyphVector 原點對應的指定字形的位置。如果 glyphIndex 等於此 GlyphVector 中的字形數,則此方法返回最後一個字形後的位置。此位置用於定義整個 GlyphVector 的 advance。

參數:
glyphIndex - 此 GlyphVector 的索引
返回:
表示指定 glyphIndex 處字形位置的 Point2D 物件。
拋出:
IndexOutOfBoundsException - 如果 glyphIndex 小於 0,或者大於此 GlyphVector 中的字形數
另請參見:
setGlyphPosition(int, java.awt.geom.Point2D)

setGlyphPosition

public abstract void setGlyphPosition(int glyphIndex,
                                      Point2D newPos)
設置此 GlyphVector 中的指定字形位置。如果 glyphIndex 等於此 GlyphVector 中的字形數,則此方法設置最後一個字形後的位置。此位置用於定義整個 GlyphVector 的 advance。

參數:
glyphIndex - 此 GlyphVector 的索引
newPos - 定位指定 glyphIndex 處字形的 Point2D
拋出:
IndexOutOfBoundsException - 如果 glyphIndex 小於 0,或大於此 GlyphVector 中的字形數
另請參見:
getGlyphPosition(int)

getGlyphTransform

public abstract AffineTransform getGlyphTransform(int glyphIndex)
返回此 GlyphVector 中指定字形的轉換。該轉換與字形位置相關。如果未應用特殊轉換,則返回 null。返回 null 指示恆等轉換。

參數:
glyphIndex - 此 GlyphVector 的索引
返回:
轉換指定 glyphIndex 處字形的 AffineTransform
拋出:
IndexOutOfBoundsException - 如果 glyphIndex 小於 0,或者大於等於此 GlyphVector 中的字形數
另請參見:
setGlyphTransform(int, java.awt.geom.AffineTransform)

setGlyphTransform

public abstract void setGlyphTransform(int glyphIndex,
                                       AffineTransform newTX)
設置此 GlyphVector 中指定字形的轉換。該轉換與字形位置相關。newTX 參數為 null 表示對指定字形沒有應用特殊轉換。此方法可以用於旋轉、鏡像、平移和縮放字形。添加轉換可以明顯地影響性能。

參數:
glyphIndex - 此 GlyphVector 的索引
newTX - glyphIndex 處的字形的新轉換
拋出:
IndexOutOfBoundsException - 如果 glyphIndex 小於 0,或者大於等於此 GlyphVector 中的字形數
另請參見:
getGlyphTransform(int)

getLayoutFlags

public int getLayoutFlags()
返回描述該 GlyphVector 全體狀態的標誌。下文沒有描述的標誌是保留的。對於位置調整、轉換、rtl 和複雜標誌,預設實作返回 0(意味著 false)。子類別應覆寫此方法,並確保它正確地描述 GlyphVector 並與相關調用的結果對應。

返回:
一個 int 值,包含描述該狀態的標誌
從以下版本開始:
1.4
另請參見:
FLAG_HAS_POSITION_ADJUSTMENTS, FLAG_HAS_TRANSFORMS, FLAG_RUN_RTL, FLAG_COMPLEX_GLYPHS, FLAG_MASK

getGlyphPositions

public abstract float[] getGlyphPositions(int beginGlyphIndex,
                                          int numEntries,
                                          float[] positionReturn)
返回包含指定字形位置的陣列。處理字形位置時,此方法使用便捷,性能優越。如果沒有陣列傳入,則創建新的陣列。從位置 0 開始的偶數陣列項是編號為 beginGlyphIndex + position/2 的字形 X 坐標。從位置 1 開始的奇數陣列項是編號為 beginGlyphIndex + (position-1)/2 的字形 Y 坐標。如果 beginGlyphIndex 等於此 GlyphVector 中的字形數,則此方法會獲取最後一個字形後的位置,此位置用於定義整個 GlyphVector 的 advance。

參數:
beginGlyphIndex - 開始檢索字形位置的索引
numEntries - 要檢索的字形數
positionReturn - 接收字形位置然後返回的陣列。
返回:
beginGlyphIndexnumEntries 指定的字形位置的陣列。
拋出:
IllegalArgumentException - 如果 numEntries 小於 0
IndexOutOfBoundsException - 如果 beginGlyphIndex 小於 0
IndexOutOfBoundsException - 如果 beginGlyphIndexnumEntries 的和大於此 GlyphVector 中的字形數加 1

getGlyphLogicalBounds

public abstract Shape getGlyphLogicalBounds(int glyphIndex)
返回此 GlyphVector 中指定字形的邏輯邊界。這些邏輯邊界總共有四個邊,兩個邊平行於該字形轉換的基線,另外兩個邊與相鄰字形(如果存在)共用。此方法常用於指定字形的命中測試、插入符在開始邊和尾邊的定位,以及在指定字形周圍繪製一個高亮顯示區域。

參數:
glyphIndex - 此 GlyphVector 的索引,它與從中檢索其邏輯邊界的字形對應
返回:
一個 Shape,表示指定 glyphIndex 處的字形邏輯邊界。
拋出:
IndexOutOfBoundsException - 如果 glyphIndex 小於 0,或者大於等於此 GlyphVector 中的字形數
另請參見:
getGlyphVisualBounds(int)

getGlyphVisualBounds

public abstract Shape getGlyphVisualBounds(int glyphIndex)
返回 GlyphVector 中指定字形的可視邊界。此方法返回的邊界位於各個字形的原點周圍。

參數:
glyphIndex - 此 GlyphVector 的索引,它與從中檢索其可視邊界的字形對應
返回:
一個 Shape,表示指定 GlyphVector 處的字形可視邊界。
拋出:
IndexOutOfBoundsException - 如果 glyphIndex 小於 0,或者大於等於此 GlyphVector 中的字形數
另請參見:
getGlyphLogicalBounds(int)

getGlyphPixelBounds

public Rectangle getGlyphPixelBounds(int index,
                                     FontRenderContext renderFRC,
                                     float x,
                                     float y)
返回當此 GlyphVectorGraphics 中以給定 FontRenderContext 在給定位置呈現時,index 處字形的像素邊界。 renderFRC 無需與此 GlyphVectorFontRenderContext 相同,可以為 null。如果為 null,則使用此 GlyphVectorFontRenderContext。預設的實作會返回該字形的可視邊界、x 和 y 的偏移量,以及捨入到下一個整數值,並忽略 FRC。子類別應覆寫此方法。

參數:
index - 該字形的索引。
renderFRC - GraphicsFontRenderContext
x - 呈現此 GlyphVector 的 X 坐標。
y - 呈現此 GlyphVector 的 Y 坐標。
返回:
包圍受影響像素的 Rectangle
從以下版本開始:
1.4

getGlyphMetrics

public abstract GlyphMetrics getGlyphMetrics(int glyphIndex)
返回此 GlyphVector 中指定索引處的字形規格。

參數:
glyphIndex - 此 GlyphVector 的索引,它與從中檢索其規格的字形對應
返回:
一個 GlyphMetrics 物件,表示此 GlyphVector 中指定 glyphIndex 處的字形規格。
拋出:
IndexOutOfBoundsException - 如果 glyphIndex 小於 0,或者大於等於此 GlyphVector 中的字形數

getGlyphJustificationInfo

public abstract GlyphJustificationInfo getGlyphJustificationInfo(int glyphIndex)
返回此 GlyphVector 中指定索引處的字形調整資訊。

參數:
glyphIndex - 此 GlyphVector 的索引,它與從中檢索其調整屬性的字形對應
返回:
一個 GlyphJustificationInfo 物件,表示此 GlyphVector 中指定 glyphIndex 處的字形調整屬性。
拋出:
IndexOutOfBoundsException - 如果 glyphIndex 小於 0,或者大於等於此 GlyphVector 中的字形數

equals

public abstract boolean equals(GlyphVector set)
測試指定的 GlyphVector 是否恰好等於此 GlyphVector

參數:
set - 要測試的指定 GlyphVector
返回:
如果指定的 GlyphVector 等於此 GlyphVector,則返回 true;否則返回 false

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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