|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.awt.font
类 TextMeasurer
java.lang.Object java.awt.font.TextMeasurer
- 所有已实现的接口:
- 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 。 |
方法摘要 | |
---|---|
protected Object |
clone() 创建并返回此对象的一个副本。 |
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 。 |
从类 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。
方法详细信息 |
---|
clone
protected Object clone()
-
从类
Object
复制的描述 -
创建并返回此对象的一个副本。“副本”的准确含义可能依赖于对象的类。一般来说,对于任何对象 x,如果表达式:
x.clone() != x
x.clone().getClass() == x.getClass()
x.clone().equals(x)
按照惯例,返回的对象应该通过调用 super.clone 获得。如果一个类及其所有的超类(Object 除外)都遵守此约定,则 x.clone().getClass() == x.getClass()。
按照惯例,此方法返回的对象应该独立于该对象(正被克隆的对象)。要获得此独立性,在 super.clone 返回对象之前,有必要对该对象的一个或多个字段进行修改。这通常意味着要复制包含正在被克隆对象的内部“深层结构”的所有可变对象,并使用对副本的引用替换对这些对象的引用。如果一个类只包含基本字段或对不变对象的引用,那么通常不需要修改 super.clone 返回的对象中的字段。
Object 类的 clone 方法执行特定的克隆操作。首先,如果此对象的类不能实现接口 Cloneable,则会抛出 CloneNotSupportedException。注意:所有的数组都被视为实现接口 Cloneable。否则,此方法会创建此对象的类的一个新实例,并像通过分配那样,严格使用此对象相应字段的内容初始化该对象的所有字段;这些字段的内容没有被自我克隆。所以,此方法执行的是该对象的“浅表复制”,而不“深层复制”操作。
Object 类本身不实现接口 Cloneable,所以在类为 Object 的对象上调用 clone 方法将会导致在运行时抛出异常。
-
- 返回:
- 此实例的一个克隆。
- 另请参见:
-
Cloneable
getLineBreakIndex
public int getLineBreakIndex(int start, float maxAdvance)
-
返回不能置于文本行上的第一个字符,该文本行从
start
开始并可能测量到图形宽度的maxAdvance
。 -
-
- 参数:
-
start
- 从此处开始测量的字符索引。start
是一个绝对索引,而不是相对于段落开始处的相对索引 -
maxAdvance
- 文本行必须符合的图形宽度 - 返回:
-
置于从
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
- 返回:
-
从
start
开始(不包括)直到limit
的字符的TextLayout
- 抛出:
-
IndexOutOfBoundsException
- 如果limit
小于start
-
IllegalArgumentException
- 如果start
或limit
不在段落开始处和段落结束处之间。
insertChar
public void insertChar(AttributedCharacterIterator newParagraph, int insertPos)
-
在将单个字符插入当前由此
TextMeasurer
表示的段落中后,更新该TextMeasurer
。在此调用后,该TextMeasurer
等效于从文本创建的新TextMeasurer
;不过,更新现有TextMeasurer
通常比重新创建一个新TextMeasurer
效率更高。 -
-
- 参数:
-
newParagraph
- 执行插入后段落的文本。不能为 null。 -
insertPos
- 插入字符在文本中的位置。不能小于newParagraph
的开始,且必须小于newParagraph
的结束。 - 抛出:
-
IndexOutOfBoundsException
- 如果insertPos
小于newParagraph
的开始或者大于或等于newParagraph
的结束 -
NullPointerException
- 如果newParagraph
为null
deleteChar
public void deleteChar(AttributedCharacterIterator newParagraph, int deletePos)
-
从当前由此
TextMeasurer
表示的段落中删除一个字符后,更新TextMeasurer
。在此调用后,该TextMeasurer
等效于从文本创建的新TextMeasurer
;不过,更新现有TextMeasurer
通常比重新创建一个新TextMeasurer
效率更高。 -
-
- 参数:
-
newParagraph
- 执行删除后的段落文本。不能为 null。 -
deletePos
- 所移除字符在文本中的位置。不能小于newParagraph
的开始,而且不能大于newParagraph
的结束。 - 抛出:
-
IndexOutOfBoundsException
- 如果deletePos
小于newParagraph
的开始或大于newParagraph
的结束 -
NullPointerException
- 如果newParagraph
为null
所有类
|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |