java.lang.Object
java.text.AttributedString
AttributedString(属性字符串)保存文本及相关属性信息。在某些情况下,它可用作实际数据存储,当文本阅读器通过AttributedCharacterIterator接口访问带属性的文本时。
属性是由键/值对标识的,由键标识。在给定字符上,没有两个属性可以具有相同的键。
属性的值是不可变的,或者不能被客户端或存储器改变。它们总是通过引用传递,而不是克隆。
- 自 JDK 版本:
- 1.2
- 参见:
-
Constructor Summary
ConstructorDescriptionAttributedString
(String text) 使用给定文本构造AttributedString实例。AttributedString
(String text, Map<? extends AttributedCharacterIterator.Attribute, ?> attributes) 使用给定文本和属性构造AttributedString实例。使用由AttributedCharacterIterator表示的给定带属性文本构造AttributedString实例。AttributedString
(AttributedCharacterIterator text, int beginIndex, int endIndex) 使用由AttributedCharacterIterator表示的给定带属性文本的子范围构造AttributedString实例。AttributedString
(AttributedCharacterIterator text, int beginIndex, int endIndex, AttributedCharacterIterator.Attribute[] attributes) 使用由AttributedCharacterIterator表示的给定带属性文本的子范围构造AttributedString实例。 -
Method Summary
Modifier and TypeMethodDescriptionvoid
addAttribute
(AttributedCharacterIterator.Attribute attribute, Object value) 向整个字符串添加属性。void
addAttribute
(AttributedCharacterIterator.Attribute attribute, Object value, int beginIndex, int endIndex) 向字符串的子范围添加属性。void
addAttributes
(Map<? extends AttributedCharacterIterator.Attribute, ?> attributes, int beginIndex, int endIndex) 向字符串的子范围添加一组属性。创建一个AttributedCharacterIterator实例,用于访问此字符串的全部内容。getIterator
(AttributedCharacterIterator.Attribute[] attributes) 创建一个AttributedCharacterIterator实例,用于访问此字符串的选定内容。getIterator
(AttributedCharacterIterator.Attribute[] attributes, int beginIndex, int endIndex) 创建一个AttributedCharacterIterator实例,用于访问此字符串的选定内容。
-
Constructor Details
-
AttributedString
使用给定文本构造AttributedString实例。- 参数:
-
text
- 此带属性字符串的文本。 - 抛出:
-
NullPointerException
- 如果text
为null。
-
AttributedString
public AttributedString(String text, Map<? extends AttributedCharacterIterator.Attribute, ?> attributes) 使用给定文本和属性构造AttributedString实例。- 参数:
-
text
- 此带属性字符串的文本。 -
attributes
- 适用于整个字符串的属性。 - 抛出:
-
NullPointerException
- 如果text
或attributes
为null。 -
IllegalArgumentException
- 如果文本长度为0且属性参数不是空Map(不能将属性应用于长度为0的范围)。
-
AttributedString
使用由AttributedCharacterIterator表示的给定带属性文本构造AttributedString实例。- 参数:
-
text
- 此带属性字符串的文本。 - 抛出:
-
NullPointerException
- 如果text
为null。
-
AttributedString
使用由AttributedCharacterIterator表示的给定带属性文本的子范围构造AttributedString实例。如果给定范围产生空文本,则将丢弃所有属性。请注意,由Annotation对象包装的任何属性在原始属性范围的子范围内都将被丢弃。- 参数:
-
text
- 此带属性字符串的文本。 -
beginIndex
- 范围第一个字符的索引。 -
endIndex
- 范围最后一个字符后面的索引。 - 抛出:
-
NullPointerException
- 如果text
为null。 -
IllegalArgumentException
- 如果由beginIndex和endIndex给出的子范围超出文本范围。 - 参见:
-
AttributedString
public AttributedString(AttributedCharacterIterator text, int beginIndex, int endIndex, AttributedCharacterIterator.Attribute[] attributes) 使用由AttributedCharacterIterator表示的给定带属性文本的子范围构造AttributedString实例。只有与给定属性匹配的属性将被合并到实例中。如果给定范围产生空文本,则将丢弃所有属性。请注意,由Annotation对象包装的任何属性在原始属性范围的子范围内都将被丢弃。- 参数:
-
text
- 此带属性字符串的文本。 -
beginIndex
- 范围第一个字符的索引。 -
endIndex
- 范围最后一个字符后面的索引。 -
attributes
- 指定要从文本中提取的属性。如果指定为null,则将使用所有可用属性。 - 抛出:
-
NullPointerException
- 如果text
为null。 -
IllegalArgumentException
- 如果由beginIndex和endIndex给出的子范围超出文本范围。 - 参见:
-
-
Method Details
-
addAttribute
向整个字符串添加属性。- 参数:
-
attribute
- 属性键 -
value
- 属性的值;可能为null - 抛出:
-
NullPointerException
- 如果attribute
为null。 -
IllegalArgumentException
- 如果AttributedString长度为0(不能将属性应用于长度为0的范围)。
-
addAttribute
public void addAttribute(AttributedCharacterIterator.Attribute attribute, Object value, int beginIndex, int endIndex) 向字符串的子范围添加属性。- 参数:
-
attribute
- 属性键 -
value
- 属性的值。可能为null。 -
beginIndex
- 范围第一个字符的索引。 -
endIndex
- 范围最后一个字符后面的索引。 - 抛出:
-
NullPointerException
- 如果attribute
为null。 -
IllegalArgumentException
- 如果beginIndex小于0,endIndex大于字符串长度,或beginIndex和endIndex一起未定义字符串的非空子范围。
-
addAttributes
public void addAttributes(Map<? extends AttributedCharacterIterator.Attribute, ?> attributes, int beginIndex, int endIndex) 向字符串的子范围添加一组属性。- 参数:
-
attributes
- 要添加到字符串的属性。 -
beginIndex
- 范围第一个字符的索引。 -
endIndex
- 范围最后一个字符后面的索引。 - 抛出:
-
NullPointerException
- 如果attributes
为null。 -
IllegalArgumentException
- 如果beginIndex小于0,endIndex大于字符串长度,或beginIndex和endIndex一起未定义字符串的非空子范围且属性参数不是空Map。
-
getIterator
创建一个AttributedCharacterIterator实例,用于访问此字符串的全部内容。- 返回:
- 提供对文本及其属性的访问的迭代器。
-
getIterator
创建一个AttributedCharacterIterator实例,用于访问此字符串的选定内容。不在属性列表中的属性信息,实现者可能不需要通过迭代器提供。如果列表为null,则应提供所有可用属性信息。- 参数:
-
attributes
- 客户端感兴趣的属性列表 - 返回:
- 提供对整个文本及其选定属性的访问的迭代器
-
getIterator
public AttributedCharacterIterator getIterator(AttributedCharacterIterator.Attribute[] attributes, int beginIndex, int endIndex) 创建一个AttributedCharacterIterator实例,用于访问此字符串的选定内容。不在属性列表中的属性信息,实现者可能不需要通过迭- Parameters:
-
attributes
- a list of attributes that the client is interested in -
beginIndex
- the index of the first character -
endIndex
- the index of the character following the last character - Returns:
- an iterator providing access to the text and its attributes
- Throws:
-
IllegalArgumentException
- if beginIndex is less than 0, endIndex is greater than the length of the string, or beginIndex is greater than endIndex.
-