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
を、x,y からの位置のオフセットとして返します。 このメソッドが返す輪郭は、個々のグリフの原点を中心に配置されます。 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, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。