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
内にある個々のグリフを変換するメソッドも提供されます。これらのメソッドは、特に特殊効果に役立ちます。
GlyphVector
全体、または GlyphVector
内にある個々のグリフの視覚、論理、およびピクセル境界を両方とも返すメソッドが提供されます。
GlyphVector
の Shape
を返すメソッド、および 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 を使用してグラフィックス内に描画されるときの、この GlyphVector のピクセル境界を返します。 |
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 内の指定されたグリフの変換を設定します。 |
public static final int FLAG_HAS_TRANSFORMS
GlyphVector
にグリフごとの変換があることを示します。public static final int FLAG_HAS_POSITION_ADJUSTMENTS
GlyphVector
に位置調整があることを示します。これが true である場合、グリフの位置はグリフのデフォルトの有効幅を累積した位置と一致しません (たとえば、カーニングが行われた場合など)。public static final int FLAG_RUN_RTL
GlyphVector
のランの方向が右から左であることを示します。これはグリフから文字へのマッピングに関するもので、グリフの視覚的な位置は一般にこの順序になるとはいえ、必ずしもそうであるとはかぎりません。public static final int FLAG_COMPLEX_GLYPHS
GlyphVector
のグリフから文字へのマッピングが複雑であることを示します (ランの方向に沿って、厳密に昇順または降順にグリフが文字に 1 対 1 でマッピングされない)。public static final int FLAG_MASK
public abstract Font getFont()
GlyphVector
に関連付けられた Font
を返します。GlyphVector
の生成に使われる Font
。Font
public abstract FontRenderContext getFontRenderContext()
GlyphVector
に関連付けられた FontRenderContext
を返します。GlyphVector
の生成に使われる FontRenderContext
。FontRenderContext
, Font
public abstract void performDefaultLayout()
GlyphVector
内の各グリフにデフォルトの位置を割り当てます。これにより、この GlyphVector
の初期レイアウト時に生成された情報が破棄されることがあります。public abstract int getNumGlyphs()
GlyphVector
内のグリフの数を返します。GlyphVector
内のグリフの数。public abstract int getGlyphCode(int glyphIndex)
GlyphVector
を生成した Font
オブジェクトに対してだけ意味があります。glyphIndex
- グリフコードを取得するグリフに対応する、この GlyphVector
内のインデックス。glyphIndex
に対応するグリフのグリフコード。IndexOutOfBoundsException
- glyphIndex
が 0 未満、またはこの GlyphVector
内のグリフの数と等しいか、それより大きい値の場合public abstract int[] getGlyphCodes(int beginGlyphIndex, int numEntries, int[] codeReturn)
GlyphVector
の生成に使用した Font
に対してだけ意味があります。このメソッドを使うと、グリフコードの処理が容易かつ効率的になります。配列が渡されなかった場合は、新しく作成されます。beginGlyphIndex
- グリフコードの取得を開始する、この GlyphVector
内のインデックス。numEntries
- 取り出すグリフコードの数codeReturn
- グリフコードを受け取り、戻り値として返される配列IllegalArgumentException
- numEntries
が 0 より小さい場合IndexOutOfBoundsException
- beginGlyphIndex
が 0 より小さい場合IndexOutOfBoundsException
- beginGlyphIndex
と numEntries
の合計が、この GlyphVector
内のグリフの数より大きい場合public int getGlyphCharIndex(int glyphIndex)
glyphIndex
- グリフのインデックスpublic int[] getGlyphCharIndices(int beginGlyphIndex, int numEntries, int[] codeReturn)
beginGlyphIndex
- 最初のグリフのインデックスnumEntries
- グリフのインデックスの数codeReturn
- 文字インデックスを格納する配列public abstract Rectangle2D getLogicalBounds()
GlyphVector
の論理境界を返します。このメソッドは、この GlyphVector
を、視覚的に隣り合う GlyphVector
オブジェクトと関連して配置するときに使います。GlyphVector
の論理境界である Rectangle2D
。public abstract Rectangle2D getVisualBounds()
GlyphVector
の視覚境界を返します。視覚境界は、GlyphVector
の輪郭のバウンディングボックスです。ラスター化やピクセル調整があるため、この GlyphVector
の描画によって影響を受けるピクセルの一部がボックス内に納まらない場合もあります。GlyphVector
のバウンディングボックスである Rectangle2D
。public Rectangle getPixelBounds(FontRenderContext renderFRC, float x, float y)
FontRenderContext
を使用してグラフィックス内に描画されるときの、この GlyphVector
のピクセル境界を返します。renderFRC はこの GlyphVector
の FontRenderContext
と同じでなくてもよく、null でもかまいません。null の場合は、この GlyphVector
の FontRenderContext
が使われます。デフォルトの実装は、x, y からのオフセットおよび次の整数値に丸められた視覚境界を返し (つまり、視覚境界を囲む整数値の矩形を返す)、FRC を無視します。サブクラスはこのメソッドをオーバーライドする必要があります。renderFRC
- Graphics
の FontRenderContext
。x
- この GlyphVector
を描画する X 座標。y
- この GlyphVector
を描画する Y 座標。Rectangle
。public abstract Shape getOutline()
GlyphVector
の視覚表現に対応する Shape
を返します。GlyphVector
の輪郭である Shape
。public abstract Shape getOutline(float x, float y)
GlyphVector
の視覚表現に対応する Shape
を返します。x
- この GlyphVector
の X 座標。y
- この GlyphVector
の Y 座標。GlyphVector
の輪郭である Shape
。public abstract Shape getGlyphOutline(int glyphIndex)
GlyphVector
内の指定されたグリフの視覚表現に対応する Shape
を返します。このメソッドが返す輪郭は、個々のグリフの原点を中心に配置されます。glyphIndex
- 次に対するインデックス: GlyphVector
GlyphVector
の指定された glyphIndex
にあるグリフの輪郭である Shape
。IndexOutOfBoundsException
- glyphIndex
が 0 未満、またはこの GlyphVector
内のグリフの数と等しいか、それより大きい値の場合public Shape getGlyphOutline(int glyphIndex, float x, float y)
GlyphVector
内の指定されたグリフの視覚表現に対応する Shape
を返します。このメソッドが返す輪郭は、個々のグリフの原点を中心に配置されます。glyphIndex
- 次に対するインデックス: GlyphVector
x
- この GlyphVector
の位置の X 座標y
- この GlyphVector
の位置の Y 座標GlyphVector
の指定された glyphIndex
にあるグリフの輪郭である Shape
。IndexOutOfBoundsException
- glyphIndex
が 0 未満、またはこの GlyphVector
内のグリフの数と等しいか、それより大きい値の場合public abstract Point2D getGlyphPosition(int glyphIndex)
GlyphVector
の原点に対する、指定されたグリフの相対位置を返します。glyphIndex
がこの GlyphVector
内のグリフの数と等しい場合、このメソッドは最後のグリフのあとの位置を返します。この位置は、GlyphVector
全体の有効幅を定義するのに使用されます。glyphIndex
- 次に対するインデックス: GlyphVector
glyphIndex
のグリフの位置である Point2D
オブジェクト。IndexOutOfBoundsException
- glyphIndex
が 0 未満、またはこの GlyphVector
内のグリフの数より大きい値の場合setGlyphPosition(int, java.awt.geom.Point2D)
public abstract void setGlyphPosition(int glyphIndex, Point2D newPos)
GlyphVector
内の指定されたグリフの位置を設定します。glyphIndex
がこの GlyphVector
内のグリフの数と等しい場合、このメソッドは最後のグリフのあとの位置を設定します。この位置は、GlyphVector
全体の有効幅を定義するのに使用されます。glyphIndex
- 次に対するインデックス: GlyphVector
newPos
- 指定された glyphIndex
のグリフを配置する Point2D
IndexOutOfBoundsException
- glyphIndex
が 0 未満、またはこの GlyphVector
内のグリフの数より大きい値の場合getGlyphPosition(int)
public abstract AffineTransform getGlyphTransform(int glyphIndex)
GlyphVector
内に指定されたグリフの変換を返します。この変換はグリフの位置を基準とします。特定の変換が適用されていない場合、null
を返すことができます。null が返された場合は恒等変換になります。glyphIndex
- 次に対するインデックス: GlyphVector
glyphIndex
のグリフの変換である AffineTransform
。IndexOutOfBoundsException
- glyphIndex
が 0 未満、またはこの GlyphVector
内のグリフの数と等しいか、それより大きい値の場合setGlyphTransform(int, java.awt.geom.AffineTransform)
public abstract void setGlyphTransform(int glyphIndex, AffineTransform newTX)
GlyphVector
内の指定されたグリフの変換を設定します。この変換はグリフの位置を基準とします。null
が引数の newTX
は、指定されたグリフに適用される特定の変換がないことを示します。このメソッドを使って、グリフの回転、反転、平行移動、およびスケーリングができます。変換を追加すると、性能に大きく影響する場合があります。glyphIndex
- 次に対するインデックス: GlyphVector
newTX
- glyphIndex
に対応するグリフの新しい変換IndexOutOfBoundsException
- glyphIndex
が 0 未満、またはこの GlyphVector
内のグリフの数と等しいか、それより大きい値の場合getGlyphTransform(int)
public int getLayoutFlags()
FLAG_HAS_POSITION_ADJUSTMENTS
, FLAG_HAS_TRANSFORMS
, FLAG_RUN_RTL
, FLAG_COMPLEX_GLYPHS
, FLAG_MASK
public abstract float[] getGlyphPositions(int beginGlyphIndex, int numEntries, float[] positionReturn)
beginGlyphIndex + position/2
で指定されるグリフの X 座標です。position 1 から始まる奇数の配列エントリは、beginGlyphIndex + (position-1)/2
で指定されるグリフの Y 座標です。beginGlyphIndex
がこの GlyphVector
内のグリフの数と等しい場合、このメソッドは最後のグリフのあとの位置を取得して、この位置を GlyphVector
全体の有効幅を定義するのに使用します。beginGlyphIndex
- グリフ位置の取得を開始するインデックスnumEntries
- 取り出すグリフの数positionReturn
- グリフ位置を受け取り、戻り値として返される配列。beginGlyphIndex
および numEntries
で指定されたグリフ位置の配列。IllegalArgumentException
- numEntries
が 0 より小さい場合IndexOutOfBoundsException
- beginGlyphIndex
が 0 より小さい場合IndexOutOfBoundsException
- beginGlyphIndex
と numEntries
の合計が、この GlyphVector
内のグリフの数に 1 を加えた数より大きい場合public abstract Shape getGlyphLogicalBounds(int glyphIndex)
GlyphVector
内の指定されたグリフの論理境界を返します。この論理境界には全部で 4 個のエッジがあり、そのうちの 2 つはグリフ変換されてもベースラインと平行を保ち、ほかの 2 つは隣り合うグリフがあればそれらと共有されます。このメソッドは、指定されたグリフの当たり判定、グリフのリーディングエッジまたはトレーリングエッジへのキャレットの配置、および指定されたグリフの周囲へのハイライト領域の描画を行うために使用されます。glyphIndex
- 論理境界の取得元のグリフに対応する、この GlyphVector
内のインデックスglyphIndex
のグリフの論理境界である Shape
。IndexOutOfBoundsException
- glyphIndex
が 0 未満、またはこの GlyphVector
内のグリフの数と等しいか、それより大きい値の場合getGlyphVisualBounds(int)
public abstract Shape getGlyphVisualBounds(int glyphIndex)
GlyphVector
内の指定されたグリフの視覚境界を返します。このメソッドが返す境界は、個々のグリフの原点を中心に配置されます。glyphIndex
- 視覚境界の取得元のグリフに対応する、この GlyphVector
内のインデックスglyphIndex
のグリフの視覚境界である Shape
。IndexOutOfBoundsException
- glyphIndex
が 0 未満、またはこの GlyphVector
内のグリフの数と等しいか、それより大きい値の場合getGlyphLogicalBounds(int)
public Rectangle getGlyphPixelBounds(int index, FontRenderContext renderFRC, float x, float y)
FontRenderContext
を使って Graphics
内にこの GlyphVector
が描画されるときのインデックスの位置にあるグリフのピクセル境界を返します。renderFRC はこの GlyphVector
の FontRenderContext
と同じでなくてもよく、null でもかまいません。null の場合は、この GlyphVector
の FontRenderContext
が使われます。デフォルトの実装は、x, y からのオフセットおよび次の整数値に丸められたグリフの視覚境界を返し、FRC を無視します。サブクラスはこのメソッドをオーバーライドする必要があります。index
- グリフのインデックス。renderFRC
- Graphics
の FontRenderContext
。x
- この GlyphVector
を描画する X 位置。y
- この GlyphVector
を描画する Y 位置。Rectangle
。public abstract GlyphMetrics getGlyphMetrics(int glyphIndex)
GlyphVector
内の指定されたインデックスのグリフのメトリックスを返します。glyphIndex
- メトリックスの取得元のグリフに対応する、この GlyphVector
内のインデックスGlyphVector
内の指定された glyphIndex
のグリフのメトリックスを表す GlyphMetrics
オブジェクト。IndexOutOfBoundsException
- glyphIndex
が 0 未満、またはこの GlyphVector
内のグリフの数と等しいか、それより大きい値の場合public abstract GlyphJustificationInfo getGlyphJustificationInfo(int glyphIndex)
GlyphVector
内の指定されたインデックスのグリフの位置揃えプロパティーを返します。glyphIndex
- 位置揃えプロパティーの取得元のグリフに対応する、この GlyphVector
内のインデックスGlyphVector
内の指定された glyphIndex
のグリフの位置揃えプロパティーを表す GlyphJustificationInfo
オブジェクト。IndexOutOfBoundsException
- glyphIndex
が 0 未満、またはこの GlyphVector
内のグリフの数と等しいか、それより大きい値の場合public abstract boolean equals(GlyphVector set)
GlyphVector
がこの GlyphVector
と厳密に等しいかどうかを判定します。set
- テストされる指定された GlyphVector
GlyphVector
がこの GlyphVector
の場合は true
、それ以外の場合は false
。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.