标题：TextMeasurer类
继承关系
java.awt.font类TextMeasurer
java.lang.Object
java.awt.font.TextMeasurer所有已实现的接口：Cloneablepublic final class TextMeasurerextends Objectimplements Cloneable
TextMeasurer 类提供换行所需的基本操作：测量到给定的 advance，确定字符范围的 advance，并为字符范围生成一个 TextLayout。该类还提供了段落增量编辑的方法。
TextMeasurer 对象是使用表示单个文本段落的 AttributedCharacterIterator 构造的。AttributedCharacterIterator 的 getBeginIndex 方法返回的值定义了第一个字符的绝对索引。AttributedCharacterIterator 的 getEndIndex 方法返回的值定义了最后一个字符后的索引。这些值定义了调用 TextMeasurer 的时使用的索引范围。例如，要通过调用获取文本范围的 advance 或文本范围的换行，则必须使用开始索引值和结束索引值之间的索引。调用 insertChar 和 deleteChar 重置 TextMeasurer 要使用在这些调用中传入的 AttributedCharacterIterator 的开始索引和结束索引。
大多数客户端将使用更方便的 LineBreakMeasurer，它实现了标准的换行策略（在每一行上放置尽可能多的适合的单词）。从以下版本开始：1.3另请参见：LineBreakMeasurer构造方法摘要TextMeasurer(AttributedCharacterIterator text, FontRenderContext frc)
从源文本构造 TextMeasurer。
从类 java.lang.Object 继承的方法
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
构造方法详细信息TextMeasurer
public TextMeasurer(AttributedCharacterIterator text, FontRenderContext frc)从源文本构造 TextMeasurer。源文本应为一个整段。 
参数：text - 源段落。不能为 null。 frc - 关于需要正确测量文本的图形设备的信息。不能为 null。
方法详细信息
cloneprotected Objectclone()从类 Object 复制的描述创建并返回此对象的一个副本。“副本”的准确含义可能依赖于对象的类。这样做的目的是，对于任何对象 x，表达式： x.clone() != x为 true，表达式： x.clone().getClass() == x.getClass()也为 true，但这些并非必须要满足的要求。一般情况下： x.clone().equals(x)为 true，但这并非必须要满足的要求。
按照惯例，返回的对象应该通过调用 super.clone 获得。如果一个类及其所有的超类（Object 除外）都遵守此约定，则 x.clone().getClass() == x.getClass()。
按照惯例，此方法返回的对象应该独立于该对象（正被复制的对象）。要获得此独立性，在 super.clone 返回对象之前，有必要对该对象的一个或多个字段进行修改。这通常意味着要复制包含正在被复制对象的内部“深层结构”的所有可变对象，并使用对副本的引用替换对这些对象的引用。如果一个类只包含基本字段或对不变对象的引用，那么通常不需要修改 super.clone 返回的对象中的字段。
Object 类的 clone 方法执行特定的复制操作。首先，如果此对象的类不能实现接口 Cloneable，则会抛出 CloneNotSupportedException。注意，所有的数组都被视为实现接口 Cloneable。否则，此方法会创建此对象的类的一个新实例，并像通过分配那样，严格使用此对象相应字段的内容初始化该对象的所有字段；这些字段的内容没有被自我复制。所以，此方法执行的是该对象的“浅表复制”，而不“深层复制”操作。
Object 类本身不实现接口 Cloneable，所以在类为 Object 的对象上调用 clone 方法将会导致在运行时抛出异常。
覆盖：类 Object 中的 clone返回：此实例的一个副本。 另请参见：CloneablegetLineBreakIndexpublic 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 小于 startIllegalArgumentException - 如果 start 或 limit 不在段落开始处和段落结束处之间。getLayoutpublic TextLayoutgetLayout(int start, int limit)返回给定字符范围上的 TextLayout。 参数：start - 第一个字符的索引 limit - 最后一个字符之后的索引。必须大于 start返回：从 start 开始（不包括）直到 limit 的字符的 TextLayout抛出：IndexOutOfBoundsException - 如果 limit 小于 startIllegalArgumentException - 如果 start 或 limit 不在段落开始处和段落结束处之间。insertCharpublic void insertChar(AttributedCharacterIterator newParagraph, int insertPos)在将单个字符插入当前由此 TextMeasurer 表示的段落中后，更新该 TextMeasurer。在此调用后，该 TextMeasurer 等效于从文本创建的新 TextMeasurer；不过，更新现有 TextMeasurer 通常比重新创建一个新 TextMeasurer 效率更高。 参数：newParagraph - 执行插入后段落的文本。不能为 null。 insertPos - 插入字符在文本中的位置。不能小于 newParagraph 的开始，且必须小于 newParagraph 的结束。 抛出：IndexOutOfBoundsException - 如果 insertPos 小于 newParagraph 的开始或者大于或等于 newParagraph 的结束 NullPointerException - 如果 newParagraph 为 nulldeleteCharpublic void deleteChar(AttributedCharacterIterator newParagraph, int deletePos)从当前由此 TextMeasurer 表示的段落中删除一个字符后，更新 TextMeasurer。在此调用后，该 TextMeasurer 等效于从文本创建的新 TextMeasurer；不过，更新现有 TextMeasurer 通常比重新创建一个新 TextMeasurer 效率更高。参数：newParagraph - 执行删除后的段落文本。不能为 null。 deletePos - 所移除字符在文本中的位置。不能小于 newParagraph 的开始，而且不能大于 newParagraph 的结束。 抛出：IndexOutOfBoundsException - 如果 deletePos 小于 newParagraph 的开始或大于 newParagraph 的结束 NullPointerException - 如果 newParagraph 为 null[1]