JavaTM 2
Platform
Std. Ed. v1.4.0

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 は 1 つの Font にだけ関連付けられていて、この Font に関連して使用できるデータだけを提供します。また、GlyphVector から取得されたメトリックスは、通常幾何学的にスケーリングはできません。これは、ピクセル化および間隔調整が、Font 内部のグリッド合わせアルゴリズムに依存するからです。GlyphVector およびそのコンポーネントであるグリフを正確に測定できるようにするには、GlyphVector を作成するときに、スケーリング変換、平滑化モード、および部分メトリックスモードを指定する必要があります。これらの特性は、転送先デバイスから導かれることがあります。

GlyphVector の各グリフについて、以下の情報を取得できます。

GlyphVector の生成に使用されたデータを変更しても、GlyphVector の状態は変わりません。

GlyphVector 内にあるグリフの位置を調整するメソッドが提供されます。これらのメソッドは、グリフの表現のために位置揃えのオペレーションを実行するアプリケーションに最適です。

GlyphVector 内にあるの個々のグリフを変換するメソッドも提供されます。これらのメソッドは、特に特殊効果に役立ちます。

GlyphVector 全体、または GlyphVector 内にある個々のグリフの視覚、論理、およびピクセル境界を両方とも返すメソッドが提供されます。

GlyphVectorShape を返すメソッド、および GlyphVector 内にある個々のグリフの Shape を返すメソッドが提供されます。

関連項目:
Font, GlyphMetrics, TextLayout

フィールドの概要
static int FLAG_COMPLEX_GLYPHS
          getLayoutFlags で使用するフラグで、この GlyphVector のグリフから文字へのマッピングが複雑であることを示します (ランの方向に沿って、厳密に昇順または降順にグリフが文字に 1 対 1 でマッピングされない)。
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)
          指定されたグリフのグリフコードを返します。
abstract  int[] getGlyphCodes(int beginGlyphIndex, int numEntries, int[] codeReturn)
          指定された複数のグリフのグリフコードの配列を返します。
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)
          その内部がこの GlyphVector 内の指定されたグリフの視覚表現に対応する Shape を、x, y からの位置のオフセットとして返します。
 Rectangle getGlyphPixelBounds(int index, FontRenderContext renderFRC, float x, float y)
          指定された位置で指定された FontRenderContext を使って Graphics 内にこの GlyphVector が描画されるときのインデックスの位置にあるグリフのピクセル境界を返します。
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)
          指定された位置で指定された FontRenderContext を使って Graphics 内にこの GlyphVector が描画されるときのインデックスの位置にあるグリフのピクセル境界を返します。
abstract  Rectangle2D getVisualBounds()
          この 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 である場合、グリフの位置はグリフのデフォルトの有効幅を累積した位置と一致しません (たとえば、カーニングが行われた場合など)。

導入されたバージョン:
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 対 1 でマッピングされない)。

導入されたバージョン:
1.4
関連項目:
定数フィールド値

FLAG_MASK

public static final int FLAG_MASK
getLayoutFlags でサポートされるフラグのマスクです。マスクでカバーされるビットだけをテストします。

導入されたバージョン:
1.4
関連項目:
定数フィールド値
コンストラクタの詳細

GlyphVector

public GlyphVector()
メソッドの詳細

getFont

public abstract Font getFont()
GlyphVector に関連した Font を返します。

戻り値:
GlyphVector の生成に使われる Font
関連項目:
Font

getFontRenderContext

public abstract FontRenderContext getFontRenderContext()
GlyphVector に関連した FontRenderContext を返します。

戻り値:
GlyphVector の生成に使われる FontRenderContext
関連項目:
FontRenderContext, Font

performDefaultLayout

public abstract void performDefaultLayout()
GlyphVector 内の各グリフにデフォルトの位置を割り当てます。これにより、この GlyphVector の初期レイアウト時に生成された情報が破棄されることがあります。


getNumGlyphs

public abstract int getNumGlyphs()
この GlyphVector のグリフ数を返します。

戻り値:
この GlyphVector 内のグリフの数

getGlyphCode

public abstract int getGlyphCode(int glyphIndex)
指定されたグリフのグリフコードを返します。この戻り値は、この GlyphVector を生成した Font オブジェクトに対してだけ意味があります。

パラメータ:
glyphIndex - グリフコードを取得するグリフに対応する、この GlyphVector 内のインデックス
戻り値:
指定された glyphIndex に対応するグリフのグリフコード
例外:
IndexOutOfBoundsException - glyphIndex が 0 未満、またはこの GlyphVector 内のグリフの数と等しいか、それより大きい値の場合

getGlyphCodes

public abstract int[] getGlyphCodes(int beginGlyphIndex,
                                    int numEntries,
                                    int[] codeReturn)
指定された複数のグリフのグリフコードの配列を返します。この戻り値の内容は、この GlyphVector の生成に使用した Font に対してだけ意味があります。このメソッドを使うと、グリフコードの処理が容易かつ効率的になります。配列が渡されなかった場合は、新しく作成されます。

パラメータ:
beginGlyphIndex - グリフコードの取得を開始する、この GlyphVector 内のインデックス
numEntries - 取り出すグリフコードの数
codeReturn - グリフコードを受け取り、戻り値として返される配列
戻り値:
指定されたグリフのグリフコードの配列
例外:
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)
指定されたグリフの文字インデックスを返します。文字インデックスは、グリフによって表される最初の論理文字のインデックスです。インデックスはグリフの順に返されます。このメソッドを使うと、グリフコードの処理が容易かつ効率的になります。配列が渡されなかった場合は、新しく作成されます。

パラメータ:
beginGlyphIndex - 最初のグリフのインデックス
numEntries - グリフのインデックスの数
codeReturn - 文字インデックスを格納する配列
戻り値:
文字インデックスの配列。グリフごとに 1 つ
導入されたバージョン:
1.4

getLogicalBounds

public abstract Rectangle2D getLogicalBounds()
GlyphVector の論理境界を返します。このメソッドは、この GlyphVector を、視覚的に隣り合う GlyphVector オブジェクトと関連して配置するときに使います。

戻り値:
この GlyphVector の論理境界である Rectangle2D

getVisualBounds

public abstract Rectangle2D getVisualBounds()
この GlyphVector の視覚境界を返します。視覚境界は、GlyphVector の輪郭のバウンディングボックスです。ラスター化やピクセル調整があるため、この GlyphVector の描画によって影響を受けるピクセルの一部がボックス内に納まらない場合もあります。

戻り値:
この GlyphVector のバウンディングボックスである Rectangle2D

getPixelBounds

public Rectangle getPixelBounds(FontRenderContext renderFRC,
                                float x,
                                float y)
指定された位置で指定された FontRenderContext を使って Graphics 内にこの GlyphVector が描画されるときのインデックスの位置にあるグリフのピクセル境界を返します。renderFRC はこの GlyphVectorFontRenderContext と同じでなくてもよく、null でもかまいません。null の場合、この GlyphVectorFontRenderContext が使用されます。

パラメータ:
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 を返します。

戻り値:
指定された座標で描画されたときにこの GlyphVector の輪郭である Shape

getGlyphOutline

public abstract Shape getGlyphOutline(int glyphIndex)
その内部がこの GlyphVector 内の指定されたグリフの視覚表現に対応する Shape を返します。このメソッドが返す輪郭は、個々のグリフの原点を中心に配置されます。

パラメータ:
glyphIndex - この GlyphVector 内のインデックス
戻り値:
この GlyphVector の指定された glyphIndex のグリフの輪郭である Shape
例外:
IndexOutOfBoundsException - glyphIndex が 0 未満、またはこの GlyphVector 内のグリフの数と等しいか、それより大きい値の場合

getGlyphOutline

public Shape getGlyphOutline(int glyphIndex,
                             float x,
                             float y)
その内部がこの GlyphVector 内の指定されたグリフの視覚表現に対応する Shape を、x, y からの位置のオフセットとして返します。このメソッドが返す輪郭は、個々のグリフの原点を中心に配置されます。

パラメータ:
glyphIndex - この GlyphVector 内のインデックス
戻り値:
指定された座標で描画されたときに、この GlyphVector の指定された glyphIndex のグリフの輪郭である Shape
例外:
IndexOutOfBoundsException - glyphIndex が 0 未満、またはこの GlyphVector 内のグリフの数と等しいか、それより大きい値の場合
導入されたバージョン:
1.4

getGlyphPosition

public abstract Point2D getGlyphPosition(int glyphIndex)
この GlyphVector の原点に対する、指定されたグリフの相対位置を返します。glyphIndexGlyphVector のグリフの数と等しい場合、このメソッドは最後のグリフのあとの位置を返します。この位置は、GlyphVector 全体の有効幅を定義するのに使用されます。

パラメータ:
glyphIndex - この GlyphVector 内のインデックス
戻り値:
指定された glyphIndex のグリフの位置である Point2D
例外:
IndexOutOfBoundsException - glyphIndex が 0 未満、またはこの GlyphVector 内のグリフの数より大きい値の場合
関連項目:
setGlyphPosition(int, java.awt.geom.Point2D)

setGlyphPosition

public abstract void setGlyphPosition(int glyphIndex,
                                      Point2D newPos)
この GlyphVector 内の指定されたグリフの位置を設定します。glyphIndexGlyphVector のグリフの数と等しい場合、このメソッドは最後のグリフのあとの位置を設定します。この位置は、GlyphVector 全体の有効幅を定義するのに使用されます。

パラメータ:
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 内の指定されたグリフの変換を設定します。この変換はグリフの位置を基準とします。null が引数の newTX は、指定されたグリフに適用される特定の変換がないことを示します。このメソッドを使って、グリフの回転、反転、平行移動、およびスケーリングができます。変換を追加すると、性能に大きく影響する場合があります。

パラメータ:
glyphIndex - この GlyphVector 内のインデックス
newTX - glyphIndex に対応するグリフの新しい変換
例外:
IndexOutOfBoundsException - glyphIndex が 0 未満、またはこの GlyphVector 内のグリフの数と等しいか、それより大きい値の場合
関連項目:
getGlyphTransform(int)

getLayoutFlags

public int getLayoutFlags()
GlyphVector のグローバルな状態を記述するフラグを返します。下に記述されていないフラグは予約されています。

戻り値:
状態を記述するフラグを含む int 値
導入されたバージョン:
1.4
関連項目:
FLAG_HAS_POSITION_ADJUSTMENTS, FLAG_HAS_TRANSFORMS, FLAG_RUN_RTL, #FLAG_COMPLEX, FLAG_MASK

getGlyphPositions

public abstract float[] getGlyphPositions(int beginGlyphIndex,
                                          int numEntries,
                                          float[] positionReturn)
指定された複数のグリフのグリフ位置を配列として返します。このメソッドを使うと、グリフ位置の処理が容易かつ効率的になります。配列が渡されなかった場合は、新しく作成されます。ゼロの位置から始まる偶数の配列エントリはグリフの X 座標であり、beginGlyphIndex + position/2 で求められます。1 の位置から始まる奇数の配列エントリはグリフの Y 座標であり、beginGlyphIndex + (position-1)/2 で求められます。beginGlyphIndex がこの GlyphVector 内のグリフの数と等しい場合、このメソッドは最後のグリフのあとの位置を取得して、この位置を GlyphVector 全体の有効幅を定義するのに使用します。

パラメータ:
beginGlyphIndex - グリフ位置の取得を開始するインデックス
numEntries - 取り出すグリフの数
positionReturn - グリフ位置を受け取り、戻り値として返される配列
戻り値:
beginGlyphIndex および numEntries で指定されたグリフ位置の配列
例外:
IllegalArgumentException - numEntries が 0 未満の場合
IndexOutOfBoundsException - beginGlyphIndex が 0 未満の場合
IndexOutOfBoundsException - beginGlyphIndexnumEntries の合計が GlyphVector のグリフの数に 1 を加えた数より多い場合

getGlyphLogicalBounds

public abstract Shape getGlyphLogicalBounds(int glyphIndex)
この GlyphVector 内の指定されたグリフの論理境界を返します。この論理境界には全部で 4 個のエッジがあり、そのうちの 2 つはグリフ変換されてもベースラインと平行を保ち、ほかの 2 つは隣り合うグリフがあればそれらと共有されます。このメソッドは、指定されたグリフのヒット検査、グリフのリーディングエッジまたはトレーリングエッジへのキャレットの配置、および指定されたグリフの周囲へのハイライト領域の描画を行うために使用されます。

パラメータ:
glyphIndex - 論理境界の取得元のグリフに対応する、この GlyphVector 内のインデックス
戻り値:
指定された glyphIndex のグリフの論理境界である Shape
例外:
IndexOutOfBoundsException - glyphIndex が 0 未満、またはこの GlyphVector 内のグリフの数と等しいか、それより大きい値の場合
関連項目:
getGlyphVisualBounds(int)

getGlyphVisualBounds

public abstract Shape getGlyphVisualBounds(int glyphIndex)
GlyphVector 内の指定されたグリフの視覚境界を返します。このメソッドが返す境界は、個々のグリフの原点を中心に配置されます。

パラメータ:
glyphIndex - 視覚境界の取得元のグリフに対応する、この GlyphVector 内のインデックス
戻り値:
指定された glyphIndex のグリフの視覚境界である Shape
例外:
IndexOutOfBoundsException - glyphIndex が 0 未満、またはこの GlyphVector 内のグリフの数と等しいか、それより大きい値の場合
関連項目:
getGlyphLogicalBounds(int)

getGlyphPixelBounds

public Rectangle getGlyphPixelBounds(int index,
                                     FontRenderContext renderFRC,
                                     float x,
                                     float y)
指定された位置で指定された FontRenderContext を使って Graphics 内にこの GlyphVector が描画されるときのインデックスの位置にあるグリフのピクセル境界を返します。renderFRC はこの GlyphVectorFontRenderContext と同じでなくてもよく、null でもかまいません。null の場合、この GlyphVectorFontRenderContext が使用されます。

パラメータ:
index - グリフのインデックス
renderFRC - GraphicsFontRenderContext
戻り値:
影響を受けるピクセルの境界を示す Rectangle
導入されたバージョン:
1.4

getGlyphMetrics

public abstract GlyphMetrics getGlyphMetrics(int glyphIndex)
この GlyphVector 内の指定されたインデックスのグリフのメトリックスを返します。

パラメータ:
glyphIndex - メトリックスの取得元のグリフに対応する、この GlyphVector 内のインデックス
戻り値:
この GlyphVector 内の指定された glyphIndex のグリフのメトリックスを表す GlyphMetrics オブジェクト
例外:
IndexOutOfBoundsException - glyphIndex が 0 未満、またはこの GlyphVector 内のグリフの数と等しいか、それより大きい値の場合

getGlyphJustificationInfo

public abstract GlyphJustificationInfo getGlyphJustificationInfo(int glyphIndex)
この GlyphVector 内の指定されたインデックスのグリフの位置揃えプロパティを返します。

パラメータ:
glyphIndex - 位置揃えプロパティの取得元のグリフに対応する、この GlyphVector 内のインデックス
戻り値:
この GlyphVector 内の指定された glyphIndex のグリフの位置揃えプロパティを表す GlyphJustificationInfo オブジェクト
例外:
IndexOutOfBoundsException - glyphIndex が 0 未満、またはこの GlyphVector 内のグリフの数と等しいか、それより大きい値の場合

equals

public abstract boolean equals(GlyphVector set)
指定された GlyphVector がこの GlyphVector と厳密に等しいかどうかを判定します。

パラメータ:
set - 判定される指定された GlyphVector
戻り値:
指定された GlyphVector がこの GlyphVector と等しい場合は true、そうでない場合は false

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.