Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.3.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## java.awt.font
Class TextMeasurer

    java.lang.Object
      |
      +--java.awt.font.TextMeasurer

public final class TextMeasurer
extends Object

`TextMeasurer` provides the primitive operations needed for line break: measuring up to a given advance, determining the advance of a range of characters, and generating a `TextLayout` for a range of characters. It also provides methods for incremental editing of paragraphs.

Most clients will use the more convenient `LineBreakMeasurer`, which implements the standard line break policy (placing as many words as will fit on each line).

Since:
  1.3
See Also:
  `LineBreakMeasurer`

Constructor Summary
`TextMeasurer(AttributedCharacterIterator text, FontRenderContext frc)` Constructs a `TextMeasurer` from the source text.

Method Summary
`void` | `deleteChar(AttributedCharacterIterator newParagraph, int deletePos)` Updates the `TextMeasurer` after a single character has been deleted from the paragraph currently represented by this `TextMeasurer`.
`float` | `getAdvanceBetween(int start, int limit)` Returns the graphical width of a line beginning at `start` and including characters up to `limit`.
`TextLayout` | `getLayout(int start, int limit)` Returns a `TextLayout` on the given character range.
`int` | `getLineBreakIndex(int start, float maxAdvance)` Returns the index of the first character which will not fit on on a line which begins at `start` and may be up to `maxAdvance` in graphical width.
`void` | `insertChar(AttributedCharacterIterator newParagraph, int insertPos)` Updates the `TextMeasurer` after a single character has been inserted into the paragraph currently represented by this `TextMeasurer`.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### TextMeasurer

    public TextMeasurer(AttributedCharacterIterator text,
                        FontRenderContext frc)

  Constructs a `TextMeasurer` from the source text. The source text should be a single entire paragraph.
  Parameters:
    `text` - the source paragraph. Cannot be null.
    `frc` - the information about a graphics device which is needed to measure the text correctly. Cannot be null.

Method Detail

### getLineBreakIndex

    public int getLineBreakIndex(int start,
                                 float maxAdvance)

  Returns the index of the first character which will not fit on on a line which begins at `start` and may be up to `maxAdvance` in graphical width.
  Parameters:
    `start` - the character index at which to start measuring. `start` is an absolute index, not relative to the start of the paragraph
    `maxAdvance` - the graphical width in which the line must fit
  Returns:
    the index after the last character which will fit on a line beginning at `start`, which is not longer than `maxAdvance` in graphical width

### getAdvanceBetween

    public float getAdvanceBetween(int start,
                                   int limit)

  Returns the graphical width of a line beginning at `start` and including characters up to `limit`. `start` and `limit` are absolute indices, not relative to the start of the paragraph.
  Parameters:
    `start` - the character index at which to start measuring
    `limit` - the character index at which to stop measuring
  Returns:
    the graphical width of a line beginning at `start` and including characters up to `limit`

### getLayout

    public TextLayout getLayout(int start,
                                int limit)

  Returns a `TextLayout` on the given character range.
  Parameters:
    `start` - the index of the first character
    `limit` - the index after the last character. Must be greater than `start`
  Returns:
    a `TextLayout` for the characters beginning at `start` up to (but not including) `limit`

### insertChar

    public void insertChar(AttributedCharacterIterator newParagraph,
                           int insertPos)

  Updates the `TextMeasurer` after a single character has been inserted into the paragraph currently represented by this `TextMeasurer`. After this call, this `TextMeasurer` is equivalent to a new `TextMeasurer` created from the text; however, it will usually be more efficient to update an existing `TextMeasurer` than to create a new one from scratch.
  Parameters:
    `newParagraph` - the text of the paragraph after performing the insertion. Cannot be null.
    `insertPos` - the position in the text where the character was inserted. Must not be less than the start of `newParagraph`, and must be less than the end of `newParagraph`.

### deleteChar

    public void deleteChar(AttributedCharacterIterator newParagraph,
                           int deletePos)

  Updates the `TextMeasurer` after a single character has been deleted from the paragraph currently represented by this `TextMeasurer`. After this call, this `TextMeasurer` is equivalent to a new `TextMeasurer` created from the text; however, it will usually be more efficient to update an existing `TextMeasurer` than to create a new one from scratch.
  Parameters:
    `newParagraph` - the text of the paragraph after performing the deletion. Cannot be null.
    `deletePos` - the position in the text where the character was removed. Must not be less than the start of `newParagraph`, and must not be greater than the end of `newParagraph`.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.3.1
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Submit a bug or feature
For further API reference and developer documentation, see Java 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Java, Java 2D, and JDBC are trademarks or registered trademarks of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-2001 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.