public class StyleContext extends Object implements Serializable, AbstractDocument.AttributeContext
这个类还提供了对小组属性的有效支持,并通过共享使用并利用其不变性来压缩它们。 由于许多风格被复制,共享的潜力是重要的,副本可以非常便宜。 较大的集减少了共享的可能性,因此自动恢复到更少的空间有效的实现。
警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4开始,对所有JavaBeans的长期存储的支持已被添加到java.beans
包中。 请参阅XMLEncoder
。
Modifier and Type | Class and Description |
---|---|
class |
StyleContext.NamedStyle
属性集合,通常用于表示字符和段落样式。
|
class |
StyleContext.SmallAttributeSet
该类在数组中保存少量属性。
|
Modifier and Type | Field and Description |
---|---|
static String |
DEFAULT_STYLE
名称附加到段落的默认逻辑风格。
|
Constructor and Description |
---|
StyleContext()
创建一个新的StyleContext对象。
|
Modifier and Type | Method and Description |
---|---|
AttributeSet |
addAttribute(AttributeSet old, Object name, Object value)
向给定集添加属性,并返回新的代表集。
|
AttributeSet |
addAttributes(AttributeSet old, AttributeSet attr)
向元素添加一组属性。
|
void |
addChangeListener(ChangeListener l)
添加一个侦听器来跟踪何时添加或删除样式。
|
Style |
addStyle(String nm, Style parent)
在样式层次结构中添加一个新样式。
|
protected MutableAttributeSet |
createLargeAttributeSet(AttributeSet a)
创建一个大的属性集,应该与时间交换空间。
|
protected StyleContext.SmallAttributeSet |
createSmallAttributeSet(AttributeSet a)
创建可以共享的一组紧凑的属性。
|
Color |
getBackground(AttributeSet attr)
获取一组属性并将其转换为背景颜色规范。
|
ChangeListener[] |
getChangeListeners()
返回使用addChangeListener()添加到此StyleContext的所有
ChangeListener 的数组。
|
protected int |
getCompressionThreshold()
返回尝试压缩到唯一/不可变集合的键/值对的最大数量。
|
static StyleContext |
getDefaultStyleContext()
返回默认的AttributeContext由所有不想定义/提供自己的上下文的文档共享。
|
AttributeSet |
getEmptySet()
获取一个空的AttributeSet。
|
Font |
getFont(AttributeSet attr)
从属性集获取字体。
|
Font |
getFont(String family, int style, int size)
获取一个新的字体。
|
FontMetrics |
getFontMetrics(Font f)
返回字体的字体指标。
|
Color |
getForeground(AttributeSet attr)
获取一组属性,并将其转换为前景颜色规范。
|
static Object |
getStaticAttribute(Object key)
返回先前使用
registerStaticAttributeKey 的对象。
|
static Object |
getStaticAttributeKey(Object key)
返回
key 的字符串
|
Style |
getStyle(String nm)
获取先前添加到文档的命名样式
|
Enumeration<?> |
getStyleNames()
获取定义的样式的名称。
|
void |
readAttributes(ObjectInputStream in, MutableAttributeSet a)
属性中阅读的上下文特定处理
|
static void |
readAttributeSet(ObjectInputStream in, MutableAttributeSet a)
从给定的对象输入流读取一组属性,这些属性先前已用
writeAttributeSet 。
|
void |
reclaim(AttributeSet a)
返回MutableAttributeSet实现不再需要的集合。
|
static void |
registerStaticAttributeKey(Object key)
将对象注册为作为属性集中的键的静态对象。
|
AttributeSet |
removeAttribute(AttributeSet old, Object name)
从集合中删除属性。
|
AttributeSet |
removeAttributes(AttributeSet old, AttributeSet attrs)
删除元素的一组属性。
|
AttributeSet |
removeAttributes(AttributeSet old, Enumeration<?> names)
删除元素的一组属性。
|
void |
removeChangeListener(ChangeListener l)
删除正在添加或删除的跟踪样式的侦听器。
|
void |
removeStyle(String nm)
删除之前添加到文档的命名样式。
|
String |
toString()
将StyleContext转换为字符串。
|
void |
writeAttributes(ObjectOutputStream out, AttributeSet a)
编写属性的上下文特定处理
|
static void |
writeAttributeSet(ObjectOutputStream out, AttributeSet a)
将一组属性写入给定的对象流以进行序列化。
|
public static final String DEFAULT_STYLE
public static final StyleContext getDefaultStyleContext()
public Style addStyle(String nm, Style parent)
nm
- 样式的名称(在文档中的命名样式集合中必须是唯一的)。
如果风格未命名,名称可能为null,但是调用者负责管理返回的引用,因为未命名的样式无法通过名称获取。
一个未命名的样式可能对于诸如字符属性覆盖(例如在样式运行中找到)的事情是有用的。
parent
- 父风格。
如果未指定的属性不需要以某种其他风格解析,则此值可能为null。
public void removeStyle(String nm)
nm
- 要删除的样式的名称
public Enumeration<?> getStyleNames()
public void addChangeListener(ChangeListener l)
l
- 变更听众
public void removeChangeListener(ChangeListener l)
l
- 变更听众
public ChangeListener[] getChangeListeners()
ChangeListener
的数组。
ChangeListener
被添加或一个空的数组,如果没有收听者被添加
public Font getFont(AttributeSet attr)
attr
- 属性集
public Color getForeground(AttributeSet attr)
attr
- 属性集
public Color getBackground(AttributeSet attr)
attr
- 属性集
public Font getFont(String family, int style, int size)
family
- 字体系列(如“Monospaced”)
style
- 字体的样式(如Font.PLAIN)
size
- 点大小> = 1
public FontMetrics getFontMetrics(Font f)
f
- 字体
public AttributeSet addAttribute(AttributeSet old, Object name, Object value)
这种方法是线程安全的,尽管大多数Swing方法都不是。 有关详细信息 ,请参阅Concurrency in Swing。
addAttribute
在接口
AbstractDocument.AttributeContext
old
- 旧属性集
name
- 非空属性名称
value
- 属性值
MutableAttributeSet.addAttribute(java.lang.Object, java.lang.Object)
public AttributeSet addAttributes(AttributeSet old, AttributeSet attr)
这种方法是线程安全的,尽管大多数Swing方法都不是。 请参阅Concurrency in Swing以获取更多信息。
addAttributes
在接口
AbstractDocument.AttributeContext
old
- 旧属性集
attr
- 要添加的属性
MutableAttributeSet.addAttribute(java.lang.Object, java.lang.Object)
public AttributeSet removeAttribute(AttributeSet old, Object name)
这种方法是线程安全的,尽管大多数Swing方法都不是。 请参阅Concurrency in Swing了解更多信息。
removeAttribute
在界面
AbstractDocument.AttributeContext
old
- 旧集属性
name
- 非空属性名称
MutableAttributeSet.removeAttribute(java.lang.Object)
public AttributeSet removeAttributes(AttributeSet old, Enumeration<?> names)
这种方法是线程安全的,尽管大多数Swing方法都不是。 有关详细信息 ,请参阅Concurrency in Swing。
removeAttributes
在界面
AbstractDocument.AttributeContext
old
- 旧属性集
names
- 属性名称
MutableAttributeSet.removeAttributes(java.util.Enumeration<?>)
public AttributeSet removeAttributes(AttributeSet old, AttributeSet attrs)
这种方法是线程安全的,尽管大多数Swing方法都不是。 请参阅Concurrency in Swing了解更多信息。
removeAttributes
在界面
AbstractDocument.AttributeContext
old
- 旧属性集
attrs
- 属性
MutableAttributeSet.removeAttributes(java.util.Enumeration<?>)
public AttributeSet getEmptySet()
getEmptySet
在接口
AbstractDocument.AttributeContext
public void reclaim(AttributeSet a)
这种方法是线程安全的,尽管大多数Swing方法都不是。 请参阅Concurrency in Swing了解更多信息。
reclaim
在界面
AbstractDocument.AttributeContext
a
- 设置回收
protected int getCompressionThreshold()
protected StyleContext.SmallAttributeSet createSmallAttributeSet(AttributeSet a)
a
- 以紧凑形式表示的属性集。
protected MutableAttributeSet createLargeAttributeSet(AttributeSet a)
a
- 要以较大形式表示的属性集。
public void writeAttributes(ObjectOutputStream out, AttributeSet a) throws IOException
IOException
public void readAttributes(ObjectInputStream in, MutableAttributeSet a) throws ClassNotFoundException, IOException
public static void writeAttributeSet(ObjectOutputStream out, AttributeSet a) throws IOException
registerStaticAttributeKey
方法的静态属性键。
没有注册为静态密钥的任何属性键将被直接序列化。
所有值都可以序列化。
out
- 输出流
a
- 属性集
IOException
- 任何I / O错误
public static void readAttributeSet(ObjectInputStream in, MutableAttributeSet a) throws ClassNotFoundException, IOException
writeAttributeSet
。
这将尝试将仅静态对象的键恢复到当前虚拟机中的静态对象,仅考虑已使用registerStaticAttributeKey
方法注册的那些键。
从流中检索的属性将被放置在给定的可变集中。
in
- 从中读取属性数据的对象流。
a
- 设置
a
的属性集。
ClassNotFoundException
- 读取对象流时遇到上传。
IOException
- 读取对象流时遇到上传。
public static void registerStaticAttributeKey(Object key)
对于在1.1虚拟机下运行,这将使用toString
返回的值连接到类名。 toString返回的值不应该在其中引用类引用(即它应该从Object中的定义中重新实现),以便在稍后重新计算时才能相同。
key
- 非空对象密钥
public static Object getStaticAttribute(Object key)
registerStaticAttributeKey
的对象。