java.awt.font
Class TextMeasurer

java.lang.Object
  extended by java.awt.font.TextMeasurer
All Implemented Interfaces:
Cloneable

public final class TextMeasurer
extends Object
implements Cloneable

TextMeasurer is a small utility class for measuring the length of laid-out text objects.

Since:
1.3

Constructor Summary
TextMeasurer(AttributedCharacterIterator text, FontRenderContext frc)
          Creates a TextMeasurer from a given text in the form of an AttributedCharacterIterator and a FontRenderContext.
 
Method Summary
protected  Object clone()
          Clones the TextMeasurer object
 void deleteChar(AttributedCharacterIterator newParagraph, int deletePos)
          Update the text if a character is deleted at the position deletePos
 float getAdvanceBetween(int start, int limit)
          Returns the total advance between two positions in the paragraph.
 TextLayout getLayout(int start, int limit)
          Returns a TextLayout object corresponding to the characters from text to limit.
 int getLineBreakIndex(int start, float maxAdvance)
          Returns the line-break index from a given starting index and a maximum advance.
 void insertChar(AttributedCharacterIterator newParagraph, int insertPos)
          Update the text if a character is inserted at the position insertPos
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TextMeasurer

public TextMeasurer(AttributedCharacterIterator text,
                    FontRenderContext frc)
Creates a TextMeasurer from a given text in the form of an AttributedCharacterIterator and a FontRenderContext.

Method Detail

clone

protected Object clone()
Clones the TextMeasurer object

Overrides:
clone in class Object
Returns:
a copy of the Object
See Also:
Cloneable

deleteChar

public void deleteChar(AttributedCharacterIterator newParagraph,
                       int deletePos)
Update the text if a character is deleted at the position deletePos

Parameters:
newParagraph - - the updated paragraph.
deletePos - - the deletion position

insertChar

public void insertChar(AttributedCharacterIterator newParagraph,
                       int insertPos)
Update the text if a character is inserted at the position insertPos

Parameters:
newParagraph - - the updated paragraph.
insertPos - - the insertion position

getAdvanceBetween

public float getAdvanceBetween(int start,
                               int limit)
Returns the total advance between two positions in the paragraph. Characters from start to limit-1 (inclusive) are included in this count.

Parameters:
start - - the starting character index.
limit - - the limiting index.

getLayout

public TextLayout getLayout(int start,
                            int limit)
Returns a TextLayout object corresponding to the characters from text to limit.

Parameters:
start - - the starting character index.
limit - - the limiting index.

getLineBreakIndex

public int getLineBreakIndex(int start,
                             float maxAdvance)
Returns the line-break index from a given starting index and a maximum advance. The index returned is the first character outside the given advance (or the limit of the string, if all remaining characters fit.)

Parameters:
start - - the starting index.
maxAdvance - - the maximum advance allowed.
Returns:
the index of the first character beyond maxAdvance, or the index of the last character + 1.