java.lang.Object
javax.swing.text.StyleContext
- 所有已实现的接口:
-
Serializable
,AbstractDocument.AttributeContext
- 直接已知的子类:
-
StyleSheet
一组样式及其相关资源的池。此类通过成为一个容器来确定一组资源的生命周期,该容器保存各种资源的缓存,例如字体和颜色,这些资源被各种样式定义重复使用。如果需要,多个文档可以共享此类,以最大化相关资源的共享。
此类还为少量属性提供了高效的支持,并通过共享属性并利用其不可变性来压缩属性。由于许多样式是复制的,因此共享的潜力很大,副本可能非常便宜。较大的属性集会降低共享的可能性,因此会自动回退到不太节省空间的实现。
警告: 此类的序列化对象将不兼容未来的Swing版本。当前的序列化支持适用于短期存储或在运行相同Swing版本的应用程序之间进行RMI。从1.4开始,已将对所有JavaBeans的长期存储支持添加到java.beans
包中。请参见XMLEncoder
。
-
Nested Class Summary
Modifier and TypeClassDescriptionclass
一组属性,通常用于表示字符和段落样式。class
此类在数组中保存少量属性。 -
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionaddAttribute
(AttributeSet old, Object name, Object value) 向给定集合添加属性,并返回新的代表性集合。addAttributes
(AttributeSet old, AttributeSet attr) 向元素添加一组属性。void
添加侦听器以跟踪添加或删除样式时的情况。将新样式添加到样式层次结构中。protected MutableAttributeSet
创建一个应该在空间和时间之间进行权衡的大型属性集。protected StyleContext.SmallAttributeSet
创建一个可能被共享的紧凑属性集。getBackground
(AttributeSet attr) 获取一组属性并将其转换为背景颜色规范。返回添加到此StyleContext中的所有ChangeListener
的数组。protected int
返回尝试压缩为唯一/不可变集合的键/值对的最大数量。static final StyleContext
返回所有不需要定义/提供自己上下文的文档共享的默认AttributeContext。获取一个空的AttributeSet。获取一个新的字体。getFont
(AttributeSet attr) 从属性集中获取字体。返回字体的字体度量。getForeground
(AttributeSet attr) 获取一组属性并将其转换为前景颜色规范。static Object
getStaticAttribute
(Object key) 返回先前使用registerStaticAttributeKey
注册的对象。static Object
返回key
将注册的字符串。获取先前添加到文档中的命名样式。Enumeration
<?> 获取已定义样式的名称。void
读取属性的特定于上下文的处理static void
从给定的对象输入流中读取一组先前使用writeAttributeSet
写出的属性。void
返回MutableAttributeSet实现不再需要的集合。static void
将对象注册为在属性集中用作键的静态对象。removeAttribute
(AttributeSet old, Object name) 从集合中删除一个属性。removeAttributes
(AttributeSet old, Enumeration<?> names) 为元素删除一组属性。removeAttributes
(AttributeSet old, AttributeSet attrs) 为元素删除一组属性。void
删除跟踪添加或删除样式的侦听器。void
removeStyle
(String nm) 删除先前添加到文档中的命名样式。toString()
将StyleContext转换为字符串。void
写出属性的特定于上下文的处理static void
将一组属性写入给定的对象流,以进行序列化。
-
Field Details
-
DEFAULT_STYLE
附加到段落的默认逻辑样式的名称。- 参见:
-
-
Constructor Details
-
StyleContext
public StyleContext()创建一个新的StyleContext对象。
-
-
Method Details
-
getDefaultStyleContext
返回所有文档共享的默认AttributeContext,这些文档不需要定义/提供自己的上下文。- 返回:
- 上下文
-
addStyle
将新样式添加到样式层次结构中。样式属性从下到上解析,因此在子级别指定的属性将覆盖父级别指定的属性。- 参数:
-
nm
- 样式的名称(必须在文档中的命名样式集合中是唯一的)。如果样式未命名,则名称可以为null,但调用者负责管理返回的未命名样式的引用,因为无法通过名称获取未命名样式。未命名样式可能对于诸如样式运行中发现的字符属性覆盖之类的事情很有用。 -
parent
- 父样式。如果未指定属性,则此值可以为null,因为某些其他样式中不需要解析未指定的属性。 - 返回:
- 创建的样式
-
removeStyle
删除先前添加到文档中的命名样式。- 参数:
-
nm
- 要删除的样式的名称
-
getStyle
获取先前添加到文档中的命名样式。- 参数:
-
nm
- 样式的名称 - 返回:
- 样式
-
getStyleNames
获取已定义样式的名称。- 返回:
- 名称列表作为枚举
-
addChangeListener
添加侦听器以跟踪添加或删除样式时的情况。- 参数:
-
l
- 更改侦听器
-
removeChangeListener
删除跟踪添加或删除样式的侦听器。- 参数:
-
l
- 更改侦听器
-
getChangeListeners
返回添加到此StyleContext中的所有ChangeListener
的数组。- 返回:
-
所有已添加的
ChangeListener
或如果未添加任何侦听器,则返回空数组 - 自1.4起:
- 1.4
-
getFont
从属性集中获取字体。此方法实现为尝试获取给定AttributeSet的缓存字体,如果失败,则解析字体特性并从低级别字体缓存中获取字体。- 参数:
-
attr
- 属性集 - 返回:
- 字体
-
getForeground
获取一组属性并将其转换为前景色规范。这可能用于指定更亮、更饱和等内容。默认情况下,它只返回由StyleConstants.Foreground属性指定的值。- 参数:
-
attr
- 属性集 - 返回:
- 颜色
-
getBackground
获取一组属性并将其转换为背景颜色规范。这可能用于指定更亮、更饱和等内容。默认情况下,它只返回由StyleConstants.Background属性指定的值。- 参数:
-
attr
- 属性集 - 返回:
- 颜色
-
getFont
获取一个新的字体。如果存在缓存的字体,则从缓存中返回字体。如果没有,则将字体添加到缓存中。这基本上是1.1字体特性的低级缓存。- 参数:
-
family
- 字体系列(例如"Monospaced") -
style
- 字体的样式(例如Font.PLAIN) -
size
- 点大小 >= 1 - 返回:
- 新字体
-
getFontMetrics
返回字体的字体度量。- 参数:
-
f
- 字体 - 返回:
- 字体度量
-
addAttribute
向给定集合添加属性,并返回新的代表性集合。此方法是线程安全的,尽管大多数Swing方法不是。有关更多信息,请参见Swing中的并发。
- 在接口中指定:
-
addAttribute
在接口AbstractDocument.AttributeContext
- 参数:
-
old
- 旧属性集 -
name
- 非null属性名称 -
value
- 属性值 - 返回:
- 更新后的属性集
- 参见:
-
addAttributes
向元素添加一组属性。此方法是线程安全的,尽管大多数Swing方法不是。有关更多信息,请参见Swing中的并发。
- 指定者:
-
addAttributes
在接口AbstractDocument.AttributeContext
中 - 参数:
-
old
- 旧属性集 -
attr
- 要添加的属性 - 返回值:
- 更新后的属性集
- 参见:
-
removeAttribute
从集合中移除一个属性。该方法是线程安全的,尽管大多数Swing方法不是。更多信息请参阅Swing中的并发性。
- 指定者:
-
removeAttribute
在接口AbstractDocument.AttributeContext
中 - 参数:
-
old
- 旧属性集 -
name
- 非空属性名称 - 返回值:
- 更新后的属性集
- 参见:
-
removeAttributes
为元素移除一组属性。该方法是线程安全的,尽管大多数Swing方法不是。更多信息请参阅Swing中的并发性。
- 指定者:
-
removeAttributes
在接口AbstractDocument.AttributeContext
中 - 参数:
-
old
- 旧属性集 -
names
- 属性名称 - 返回值:
- 更新后的属性集
- 参见:
-
removeAttributes
为元素移除一组属性。该方法是线程安全的,尽管大多数Swing方法不是。更多信息请参阅Swing中的并发性。
- 指定者:
-
removeAttributes
在接口AbstractDocument.AttributeContext
中 - 参数:
-
old
- 旧属性集 -
attrs
- 属性 - 返回值:
- 更新后的属性集
- 参见:
-
getEmptySet
获取一个空的属性集。- 指定者:
-
getEmptySet
在接口AbstractDocument.AttributeContext
中 - 返回值:
- 属性集
-
reclaim
返回MutableAttributeSet实现不再需要的属性集。这对于在1.1版本下运行操作很有用,因为那里没有弱引用。这通常会被MutableAttributeSet实现的finalize方法调用。该方法是线程安全的,尽管大多数Swing方法不是。更多信息请参阅Swing中的并发性。
- 指定者:
-
reclaim
在接口AbstractDocument.AttributeContext
中 - 参数:
-
a
- 要回收的属性集
-
getCompressionThreshold
protected int getCompressionThreshold()返回尝试压缩为唯一/不可变集合的键/值对的最大数量。超过此限制的集合将使用哈希表,并且将是一个MutableAttributeSet。- 返回值:
- 阈值
-
createSmallAttributeSet
创建一个可能被共享的紧凑属性集。这是子类想要改变SmallAttributeSet行为的挂钩。可以重新实现此方法以返回提供某种属性转换的AttributeSet。- 参数:
-
a
- 要以紧凑形式表示的属性集。 - 返回值:
- 可能被共享的紧凑属性集
-
createLargeAttributeSet
创建一个应该在空间和时间之间进行权衡的大型属性集。此集合不会被共享。这是子类想要改变较大属性存储格式(默认为SimpleAttributeSet)行为的挂钩。可以重新实现此方法以返回提供某种属性转换的MutableAttributeSet。- 参数:
-
a
- 要以较大形式表示的属性集。 - 返回值:
- 应该在空间和时间之间进行权衡的大型属性集
-
toString
将StyleContext转换为String。 -
writeAttributes
写出属性的上下文特定处理- 参数:
-
out
- 输出流 -
a
- 属性集 - 抛出:
-
IOException
- 任何I/O错误
-
readAttributes
public void readAttributes(ObjectInputStream in, MutableAttributeSet a) throws ClassNotFoundException, IOException 读入属性的上下文特定处理- 参数:
-
in
- 从中读取属性数据的对象流。 -
a
- 要放置属性定义的属性集。 - 抛出:
-
ClassNotFoundException
- 如果在读取对象流时遇到 -
IOException
- 如果在读取对象流时遇到
-
writeAttributeSet
将一组属性写入给定的对象流,以进行序列化。这将特别处理已使用registerStaticAttributeKey
方法注册的静态属性键。未注册为静态键的任何属性键将直接序列化。所有值都应该是可序列化的。- 参数:
-
out
- 输出流 -
a
- 属性集 - 抛出:
-
IOException
- 任何I/O错误
-
readAttributeSet
public static void readAttributeSet(ObjectInputStream in, MutableAttributeSet a) throws ClassNotFoundException, IOException 从先前使用writeAttributeSet
写出的对象输入流中读取一组属性。这将尝试将静态对象键恢复为当前虚拟机中的静态对象,只考虑已使用registerStaticAttributeKey
方法注册的键。从流中检索的属性将放入给定的可变集合中。- 参数:
-
in
- 从中读取属性数据的对象流。 -
a
- 要放置属性定义的属性集。 - 抛出:
-
ClassNotFoundException
- 如果在读取对象流时遇到 -
IOException
- 如果在读取对象流时遇到
-
registerStaticAttributeKey
将一个对象注册为在属性集中用作键的静态对象。这允许对键进行特殊处理以进行序列化。对于在1.1虚拟机下运行的操作,这使用
toString
返回的值连接到类名。toString返回的值不应该包含类引用(即应该从Object中的定义重新实现)以便在以后重新计算时保持相同。- 参数:
-
key
- 非空对象键
-
getStaticAttribute
返回先前使用registerStaticAttributeKey
注册的对象。- 参数:
-
key
- 对象键 - 返回值:
-
返回先前使用
registerStaticAttributeKey
注册的对象
-
getStaticAttributeKey
返回key
将注册的字符串。- 参数:
-
key
- 对象键 - 返回值:
-
key
将注册的字符串 - 参见:
-