- java.lang.Object
-
- java.awt.font.TextMeasurer
-
- 实现的所有接口
-
Cloneable
public final class TextMeasurer extends Object implements Cloneable
TextMeasurer
类提供换行所需的基本操作:测量到达给定的TextLayout
,确定一系列字符的前进,以及为一系列字符生成TextLayout
。 它还提供了增量编辑段落的方法。甲
TextMeasurer
对象被构造用AttributedCharacterIterator
表示文本的一个段落。 由返回的值getBeginIndex
的方法AttributedCharacterIterator
限定的第一个字符的绝对索引。 在返回的值getEndIndex
的方法AttributedCharacterIterator
定义过去的最后一个字符的索引。 这些值定义了在调用TextMeasurer
使用的索引范围。 例如,调用获取一系列文本的进度或一系列文本的换行符必须使用开始和结束索引值之间的索引。 调用insertChar
和deleteChar
重置TextMeasurer
以使用这些调用中传递的AttributedCharacterIterator
的开始索引和结束索引。大多数客户将使用更方便的
LineBreakMeasurer
,它实现了标准的换行策略(放置尽可能多的单词适合每一行)。- 从以下版本开始:
- 1.3
- 另请参见:
-
LineBreakMeasurer
-
-
构造方法摘要
构造方法 构造器 描述 TextMeasurer(AttributedCharacterIterator text, FontRenderContext frc)
从源文本构造TextMeasurer
。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 void
deleteChar(AttributedCharacterIterator newParagraph, int deletePos)
更新TextMeasurer
后一个字符已经从当前由此表示的段落中删除TextMeasurer
。float
getAdvanceBetween(int start, int limit)
返回从start
开始的行的图形宽度,包括最多limit
字符。TextLayout
getLayout(int start, int limit)
返回给定字符范围的TextLayout
。int
getLineBreakIndex(int start, float maxAdvance)
返回第一个字符的索引,该索引不适合从start
开始的行,并且可能以图形宽度测量最多maxAdvance
。void
insertChar(AttributedCharacterIterator newParagraph, int insertPos)
更新TextMeasurer
单个字符已经被插入到当前这个表示的段落后TextMeasurer
。
-
-
-
构造方法详细信息
-
TextMeasurer
public TextMeasurer(AttributedCharacterIterator text, FontRenderContext frc)
从源文本构造一个TextMeasurer
。 源文本应该是一个完整的段落。- 参数
-
text
- 源段落。 不能为空。 -
frc
- 有关正确测量文本所需的图形设备的信息。 不能为空。
-
-
方法详细信息
-
getLineBreakIndex
public int getLineBreakIndex(int start, float maxAdvance)
返回第一个字符的索引,该索引不适合从start
开始的行,并且可能以图形宽度测量最多maxAdvance
。- 参数
-
start
- 开始测量的字符索引。start
是绝对索引,而不是相对于段落的开头 -
maxAdvance
- 行必须适合的图形宽度 - 结果
-
最后一个字符后面的索引,它适合从
start
开始的start
,图形宽度不超过maxAdvance
- 异常
-
IllegalArgumentException
- 如果start
小于段落的开头。
-
getAdvanceBetween
public float getAdvanceBetween(int start, int limit)
返回从start
开始的行的图形宽度,包括最多limit
字符。start
和limit
是绝对指数,而不是相对于段落的开头。- 参数
-
start
- 开始测量的字符索引 -
limit
- 停止测量的字符索引 - 结果
-
一行的图形宽度,从
start
开始,包括最多limit
字符 - 异常
-
IndexOutOfBoundsException
- 如果limit
小于start
-
IllegalArgumentException
- 如果start
或limit
不在段落的开头和段落的结尾之间。
-
getLayout
public TextLayout getLayout(int start, int limit)
返回给定字符范围的TextLayout
。- 参数
-
start
- 第一个字符的索引 -
limit
- 最后一个字符后的索引。 必须大于start
- 结果
-
a
TextLayout
,字符开头于start
最多(但不包括)limit
- 异常
-
IndexOutOfBoundsException
- 如果limit
小于start
-
IllegalArgumentException
- 如果start
或limit
不在段落的开头和段落的结尾之间。
-
insertChar
public void insertChar(AttributedCharacterIterator newParagraph, int insertPos)
更新TextMeasurer
单个字符已经被插入到当前这个表示的段落后TextMeasurer
。 在此调用之后,此TextMeasurer
相当于从文本创建的新TextMeasurer
; 但是,更新现有的TextMeasurer
比从头创建新的更有效。- 参数
-
newParagraph
- 执行插入后段落的文本。 不能为空。 -
insertPos
- 插入字符的文本中的位置。 不得小于newParagraph
,且必须小于newParagraph
的结尾。 - 异常
-
IndexOutOfBoundsException
- 如果insertPos
小于newParagraph
或大于或等于newParagraph
-
NullPointerException
- 如果newParagraph
是null
-
deleteChar
public void deleteChar(AttributedCharacterIterator newParagraph, int deletePos)
更新TextMeasurer
后一个字符已经从当前由此表示的段落中删除TextMeasurer
。 在此调用之后,此TextMeasurer
相当于从文本创建的新TextMeasurer
; 但是,更新现有的TextMeasurer
比从头创建新的更有效。- 参数
-
newParagraph
- 执行删除后的段落文本。 不能为空。 -
deletePos
- 文本中删除字符的位置。 不得小于newParagraph
,且不得大于newParagraph
的结尾。 - 异常
-
IndexOutOfBoundsException
-如果deletePos
小于开始newParagraph
或大于的端newParagraph
-
NullPointerException
- 如果newParagraph
是null
-
-