java.lang.Object
java.awt.font.TextMeasurer
- すべての実装されたインタフェース:
- Cloneable
public final class TextMeasurer extends Object implements Cloneable
TextMeasurerクラスは、有効幅の測定、文字範囲の有効幅の指定、文字範囲のTextLayoutの作成など、改行に必要な基本操作を提供します。 パラグラフが増えた場合の編集メソッドも提供します。 
 
 TextMeasurerオブジェクトは、1段落のテキストを表すAttributedCharacterIteratorで構築されます。 AttributedCharacterIteratorのgetBeginIndexメソッドが返す値は、最初の文字の絶対インデックスを定義します。 AttributedCharacterIteratorのgetEndIndexメソッドが返す値は、最後の文字の次のインデックスを定義します。 これらの値によって、TextMeasurerを呼び出すときに使用するインデックスの範囲が定義されます。 たとえば、テキストの範囲の有効幅、つまりテキストの範囲の改行を取得するための呼出しでは、開始インデックス値と終了インデックス値の間のインデックスを使用する必要があります。 insertCharおよびdeleteCharを呼び出すと、TextMeasurerがリセットされ、これらの呼出しで渡されたAttributedCharacterIteratorの開始インデックスと終了インデックスが使用されます。 
 
 ほとんどのクライアントは、標準改行ポリシー(各行に配置できるだけの文字を配置)を実装する便利なLineBreakMeasurerを使用します。
- 導入されたバージョン:
- 1.3
- 関連項目:
- LineBreakMeasurer
- 
コンストラクタのサマリーコンストラクタ コンストラクタ 説明 TextMeasurer(AttributedCharacterIterator text, FontRenderContext frc)ソース・テキストからTextMeasurerを構築します。
- 
メソッドのサマリー修飾子と型 メソッド 説明 voiddeleteChar(AttributedCharacterIterator newParagraph, int deletePos)このTextMeasurerが現在表すパラグラフで1文字を削除してからTextMeasurerを更新します。floatgetAdvanceBetween(int start, int limit)startで始まり、limitまでの文字を含む行のグラフィック幅を返します。TextLayoutgetLayout(int start, int limit)指定された文字範囲のTextLayoutを返します。intgetLineBreakIndex(int start, float maxAdvance)startで始まり、グラフィック幅がmaxAdvanceの行に配置できない最初の文字のインデックスを返します。voidinsertChar(AttributedCharacterIterator newParagraph, int insertPos)このTextMeasurerが現在表すパラグラフへ1文字を挿入してからTextMeasurerを更新します。
- 
コンストラクタの詳細- 
TextMeasurerpublic TextMeasurer(AttributedCharacterIterator text, FontRenderContext frc)ソース・テキストからTextMeasurerを構築します。 ソース・テキストは1段落全体になります。- パラメータ:
- text- ソース段落。 nullは不可。
- frc- テキストを正確に測定するために必要なグラフィックス・デバイスに関する情報。 nullは不可。
 
 
- 
- 
メソッドの詳細- 
getLineBreakIndexpublic int getLineBreakIndex(int start, float maxAdvance)startで始まり、グラフィック幅がmaxAdvanceの行に配置できない最初の文字のインデックスを返します。- パラメータ:
- start- 測定を開始する位置の文字インデックス。- startは絶対インデックスで、段落の開始位置を基準にしたものではない
- maxAdvance- 行を配置するグラフィック幅
- 戻り値:
- startで始まり、グラフィック幅が- maxAdvance以内の行に配置できる最後の文字の後のインデックス
- 例外:
- IllegalArgumentException-- startが段落の開始位置より前の場合。
 
- 
getAdvanceBetweenpublic float getAdvanceBetween(int start, int limit)startで始まり、limitまでの文字を含む行のグラフィック幅を返します。startとlimitは絶対インデックスで、段落の開始位置を基準にしたものではありません。- パラメータ:
- start- 測定を開始する位置の文字インデックス
- limit- 測定を終了する位置の文字インデックス
- 戻り値:
- startで始まり、- limitまでの文字を含む行のグラフィック幅
- 例外:
- IndexOutOfBoundsException-- limitが- startより前の場合
- IllegalArgumentException-- startまたは- limitが段落の開始位置と終了位置の間にない場合。
 
- 
getLayoutpublic TextLayout getLayout(int start, int limit)指定された文字範囲のTextLayoutを返します。- パラメータ:
- start- 最初の文字のインデックス
- limit- 最後の文字の次のインデックス。 これは- startより大きくなければならない
- 戻り値:
- startから始まり、- limitまでの(ただしlimitは含みません)文字の- TextLayout
- 例外:
- IndexOutOfBoundsException-- limitが- startより前の場合
- IllegalArgumentException-- startまたは- limitが段落の開始位置と終了位置の間にない場合。
 
- 
insertCharpublic void insertChar(AttributedCharacterIterator newParagraph, int insertPos)このTextMeasurerが現在表すパラグラフへ1文字を挿入してからTextMeasurerを更新します。 この呼出しのあと、TextMeasurerは、テキストから作成された新しいTextMeasurerと同等になります。しかし、通常は、まったくゼロから新しいものを作成するより既存のTextMeasurerを更新した方が効率的です。- パラメータ:
- newParagraph- 挿入を実行した後の段落のテキスト。 nullは不可。
- insertPos- テキスト内の、文字が挿入された位置。- newParagraphの開始位置以降で、- newParagraphの終了位置より前。
- 例外:
- IndexOutOfBoundsException-- insertPosが- newParagraphの開始位置より前、または- newParagraphの終了位置と同じか、それより後ろである場合
- NullPointerException-- newParagraphが- nullである場合
 
- 
deleteCharpublic void deleteChar(AttributedCharacterIterator newParagraph, int deletePos)このTextMeasurerが現在表すパラグラフで1文字を削除してからTextMeasurerを更新します。 この呼出しのあと、TextMeasurerは、テキストから作成された新しいTextMeasurerと同等になります。しかし、通常は、まったくゼロから新しいものを作成するより既存のTextMeasurerを更新した方が効率的です。- パラメータ:
- newParagraph- 削除を実行した後の段落のテキスト。 nullは不可。
- deletePos- テキスト内の、文字が削除された位置。- newParagraphの開始位置以降で、- newParagraphの終了位置を超えない。
- 例外:
- IndexOutOfBoundsException-- deletePosが- newParagraphの開始位置より前、または- newParagraphの終了位置より後ろである場合
- NullPointerException-- newParagraphが- nullである場合
 
 
-