目次 | 前の項目 | 次の項目 | Java 2D API |
GlyphVector クラスは、独自のレイアウト機構の処理結果を表示する手段を提供します。GlyphVector オブジェクトは、文字列を受け取って、この文字列をどのように表示するかを正確に計算するアルゴリズムの出力とみなすことができます。システムには組み込みのアルゴリズムが 1 つありますが、Java 2D API では独自にアルゴリズムを定義できます。GlyphVector オブジェクトは、基本的にはグリフとグリフの場所の配列です。文字の代わりにグリフを使うのは、カーニング、合字などのレイアウトの特性を完全に制御できるようにするためです。たとえば、文字列 final を表示するときに、先頭の fi という部分文字列を合字の fi で置き換えたいことがあります。この場合、GlyphVector オブジェクトは、元の文字列に含まれる文字の数より少ない数のグリフを持つことになります。
図 4-13 と 図 4-14 は、レイアウト機構によって GlyphVector オブジェクトがどのように使われるかを示しています。図 4-13 は、デフォルトのレイアウト機構を示しています。String に対して drawString が呼び出されると、組み込みレイアウト機構は次の処理を行います。
図 4-14 は、独自のレイアウト機構を使う場合の処理を示しています。独自のレイアウトアルゴリズムを使うには、テキストをレイアウトするのに必要なすべての情報を収集しなければなりません。基本的な処理は次のとおりです。
テキストをレンダリングするには、GlyphVector を drawString に渡します。drawString は、受け取った GlyphVector をグリフレンダリングに渡します。 図 4-14 では、独自のレイアウトアルゴリズムが fi という部分文字列を合字の fi で置き換えています。