目次 | 前の項目 | 次の項目 Java 2D API


4.5 独自のテキストレイアウト機構の実装

GlyphVector クラスは、独自のレイアウト機構の処理結果を表示する手段を提供します。 GlyphVector オブジェクトは、文字列を受け取って、この文字列をどのように表示するかを正確に計算するアルゴリズムの出力とみなすことができます。 システムには組み込みのアルゴリズムが 1 つありますが、Java 2DTM API では独自にアルゴリズムを定義できます。

GlyphVector オブジェクトは、基本的にはグリフとグリフの位置の配列です。 文字の代わりにグリフを使うのは、カーニング、合字などのレイアウトの特性を完全に制御できるようにするためです。 たとえば、文字列 final を表示するときに、先頭の fi という部分文字列を合字の fi で置き換えたいことがあります。 この場合、GlyphVector オブジェクトは、元の文字列に含まれる文字の数より少ない数のグリフを持つことになります。

図 4-13図 4-14 は、レイアウト機構によって GlyphVector オブジェクトがどのように使われるかを示しています。 図 4-13 は、デフォルトのレイアウト機構を示しています。 String に対して drawString が呼び出されると、組み込みレイアウト機構は次の処理を行います。

図 4-13 組み込みのレイアウトアルゴリズム

図 4-14 は、独自のレイアウト機構を使う場合の処理を示しています。 独自のレイアウトアルゴリズムを使うには、テキストをレイアウトするのに必要なすべての情報を収集しなければなりません。 基本的な処理は次のとおりです。

テキストをレンダリングするには、GlyphVectordrawString に渡します。 drawString は、受け取った GlyphVector をグリフレンダリングに渡します。 図 4-14 では、独自のレイアウトアルゴリズムが fi という部分文字列を合字の fi で置き換えています。

図 4-14 独自のレイアウトアルゴリズムの使用



目次 | 前の項目 | 次の項目
Copyright © 1997-2001 Sun Microsystems, Inc. All Rights Reserved.