JavaTM 2 Platform
Std. Ed. v1.3

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 オブジェクトを作成するメソッドも提供されます。これらのメソッドは、グリフの表現のために位置揃えのオペレーションを実行するアプリケーションに最適です。

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

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

関連項目:
Font, GlyphMetrics, TextLayout

コンストラクタの概要
GlyphVector()
           
 
メソッドの概要
abstract  boolean equals(GlyphVector set)
          指定された GlyphVector がこの GlyphVector と厳密に等しいかどうかを判定します。
abstract  Font getFont()
          GlyphVector に関連した Font を返します。
abstract  FontRenderContext getFontRenderContext()
          GlyphVector に関連した FontRenderContext を返します。
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 を返します。
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 内の指定されたグリフの視覚境界を返します。
abstract  Rectangle2D getLogicalBounds()
          GlyphVector の論理境界を返します。
abstract  int getNumGlyphs()
          この GlyphVector 内のグリフの数を返します。
abstract  Shape getOutline()
          その内部がこの GlyphVector の視覚表現に対応する Shape を返します。
abstract  Shape getOutline(float x, float y)
          その内部がこの GlyphVector の視覚表現に対応する Shape を返します。
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
 

コンストラクタの詳細

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 内の各グリフにデフォルトの位置を割り当てます。形状決定、並べ替え、あるいはコンテキスト依存の代入は行いません。

getNumGlyphs

public abstract int getNumGlyphs()
この GlyphVector 内のグリフの数を返します。ほかの情報取得オペレーションの結果によって指定される配列を作成するには、この情報を使います。
戻り値:
この GlyphVector 内のグリフの数

getGlyphCode

public abstract int getGlyphCode(int glyphIndex)
指定されたグリフのグリフコードを返します。この戻り値は Font に対してだけ意味があり、既存の合字、およびその他のコンテキストに関わる情報を Font オブジェクトに問い合わせるために使うことができます。
パラメータ:
glyphIndex - グリフコードを取得するグリフに対応する、この GlyphVector 内のインデックス
戻り値:
指定された glyphIndex に対応するグリフの glyphcode
例外:
IndexOutOfBoundsException - glyphIndex が 0 未満、またはこの GlyphVector 内のグリフの数と等しいか、それより大きい値の場合

getGlyphCodes

public abstract int[] getGlyphCodes(int beginGlyphIndex,
                                    int numEntries,
                                    int[] codeReturn)
指定された複数のグリフのグリフコードの配列を返します。この戻り値の内容は Font に対してだけ意味があり、既存の合字、およびその他のコンテキストに関わる情報を Font に問い合わせるために使うことができます。このメソッドを使うと、グリフコードの処理が容易かつ効率的になります。配列が渡されなかった場合は、新しく作成されます。
パラメータ:
beginGlyphIndex - 対応するグリフのグリフコードの取得を開始する、この GlyphVector 内のインデックス
numEntries - 取り出すグリフの数
codeReturn - グリフコードを受け取り、戻り値として返される配列
戻り値:
指定されたグリフのグリフコードの配列
例外:
IllegalArgumentException - numEntries が 0 未満の場合
IndexOutOfBoundsException - beginGlyphIndex が 0 未満の場合
IndexOutOfBoundsException - beginGlyphIndexnumEntries の合計が GlyphVector のグリフの数より多い場合

getLogicalBounds

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

getVisualBounds

public abstract Rectangle2D getVisualBounds()
この GlyphVector の視覚境界を返します。視覚境界は、この GlyphVector の描画された表現のバックグラウンドでないすべてのピクセルを囲む最小の矩形です。
戻り値:
この GlyphVector の最小の境界である Rectangle2D

getOutline

public abstract Shape getOutline()
その内部がこの GlyphVector の視覚表現に対応する Shape を返します。
戻り値:
この GlyphVector の輪郭である Shape

getOutline

public abstract Shape getOutline(float x,
                                 float y)
その内部がこの GlyphVector の視覚表現に対応する Shape を返します。x, y の位置をオフセットとします。
パラメータ:
x, y - 輪郭 Shape の位置の座標
戻り値:
この GlyphVector の輪郭である Shape。指定された座標へのオフセット

getGlyphOutline

public abstract Shape getGlyphOutline(int glyphIndex)
その内部がこの GlyphVector 内の指定されたグリフの視覚表現に対応する Shape を返します。
パラメータ:
glyphIndex - この GlyphVector 内のインデックス
戻り値:
この GlyphVector の指定された glyphIndex のグリフの輪郭である Shape
例外:
IndexOutOfBoundsException - glyphIndex が 0 未満、またはこの GlyphVector 内のグリフの数と等しいか、それより大きい値の場合

getGlyphPosition

public abstract Point2D getGlyphPosition(int glyphIndex)
この GlyphVector 内に指定されたグリフの位置を返します。この位置はグリフのベースラインにあるリーディングエッジに対応します。glyphIndexGlyphVector 内のグリフの数と等しい場合、このメソッドは最後のグリフのあとの位置を取得し、この位置を GlyphVector 全体の有効幅を定義するのに使用します。
パラメータ:
glyphIndex - この GlyphVector 内のインデックス
戻り値:
指定された glyphIndex のグリフの位置である Point2D
例外:
IndexOutOfBoundsException - glyphIndex が 0 未満、またはこの GlyphVector 内のグリフの数より大きい値の場合

setGlyphPosition

public abstract void setGlyphPosition(int glyphIndex,
                                      Point2D newPos)
この GlyphVector 内に指定されたグリフの位置を設定します。この位置はグリフのベースラインにあるリーディングエッジに対応します。glyphIndexGlyphVector 内のグリフの数と等しい場合、このメソッドは最後のグリフのあとの位置を設定し、この位置を GlyphVector 全体の有効幅を定義するのに使用します。
パラメータ:
glyphIndex - この GlyphVector 内のインデックス
newPos - 指定された glyphIndex のグリフを配置する Point2D
例外:
IndexOutOfBoundsException - glyphIndex が 0 未満、またはこの GlyphVector 内のグリフの数より大きい値の場合

getGlyphTransform

public abstract AffineTransform getGlyphTransform(int glyphIndex)
GlyphVector 内に指定されたグリフの変換を返します。変換はグリフの位置を基準とします。特定の変換が適用されていない場合、null を返すことができます。このような変換は恒等変換になります。
パラメータ:
glyphIndex - この GlyphVector 内のインデックス
戻り値:
指定された glyphIndex のグリフの変換である AffineTransform
例外:
IndexOutOfBoundsException - glyphIndex が 0 未満、またはこの GlyphVector 内のグリフの数と等しいか、それより大きい値の場合

setGlyphTransform

public abstract void setGlyphTransform(int glyphIndex,
                                       AffineTransform newTX)
この GlyphVector 内の指定されたグリフの変換を設定します。この変換はグリフの位置を基準とします。null が引数の newTX は、指定されたグリフに適用される特定の変換がないことを示します。このメソッドを使って、グリフの回転、反転、平行移動、およびスケーリングができます。変換を追加すると、性能に大きく影響する場合があります。
パラメータ:
glyphIndex - この GlyphVector 内のインデックス
newTx - 指定された glyphIndex のグリフ変換が設定される変換
例外:
IndexOutOfBoundsException - glyphIndex が 0 未満、またはこの GlyphVector 内のグリフの数と等しいか、それより大きい値の場合

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 内の指定されたグリフの視覚境界を返します。この視覚境界には全部で 4 個のエッジがあり、グリフの描画された表現のバックグラウンドでないピクセルを囲む、最小の多角形を表します。グリフのエッジは、論理境界のエッジと平行です。指定されたグリフのヒット検査を行うために使用されます。
パラメータ:
glyphIndex - 可視境界の取得元のグリフに対応する、この GlyphVector 内のインデックス
戻り値:
指定された glyphIndex のグリフの可視境界である Shape
例外:
IndexOutOfBoundsException - glyphIndex が 0 未満、またはこの GlyphVector 内のグリフの数と等しいか、それより大きい値の場合
関連項目:
getGlyphLogicalBounds(int)

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.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

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