- java.lang.Object
-
- javax.swing.text.AbstractDocument
-
- javax.swing.text.DefaultStyledDocument
-
- 实现的所有接口
-
Serializable
,Document
,StyledDocument
- 已知直接子类:
-
HTMLDocument
public class DefaultStyledDocument extends AbstractDocument implements StyledDocument
可以使用与富文本格式类似的方式标记字符和段落样式的文档。 此文档的元素结构表示样式运行的样式交叉。 这些样式运行映射到段落元素结构(可能驻留在某些其他结构中)。 由于逻辑样式被分配给段落边界,因此样式在段落边界处运行。警告:此类的序列化对象与以后的Swing版本不兼容。 当前的序列化支持适用于运行相同版本Swing的应用程序之间的短期存储或RMI。 从1.4开始,
java.beans
软件包中添加了对所有JavaBeansjava.beans
长期存储的支持。 请参见XMLEncoder
。- 另请参见:
-
Document
,AbstractDocument
, Serialized Form
-
-
嵌套类汇总
嵌套类 变量和类型 类 描述 static class
DefaultStyledDocument.AttributeUndoableEdit
UndoableEdit用于记住对Element的AttributeSet更改。class
DefaultStyledDocument.ElementBuffer
用于管理元素层次结构更改的类。static class
DefaultStyledDocument.ElementSpec
建筑构件规范。protected class
DefaultStyledDocument.SectionElement
文档的默认根元素...映射包含的段落/行。
-
字段汇总
字段 变量和类型 字段 描述 protected DefaultStyledDocument.ElementBuffer
buffer
元素缓冲区。static int
BUFFER_SIZE_DEFAULT
初始内容缓冲区的默认大小。-
声明的属性在类 javax.swing.text.AbstractDocument
BAD_LOCATION, BidiElementName, ContentElementName, ElementNameAttribute, listenerList, ParagraphElementName, SectionElementName
-
Fields declared in interface javax.swing.text.Document
StreamDescriptionProperty, TitleProperty
-
-
构造方法摘要
构造方法 构造器 描述 DefaultStyledDocument()
构造默认样式文档。DefaultStyledDocument(AbstractDocument.Content c, StyleContext styles)
构造一个样式文档。DefaultStyledDocument(StyleContext styles)
使用默认内容存储实现和一组共享样式构造样式化文档。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 void
addDocumentListener(DocumentListener listener)
添加文档侦听器以通知任何更改。Style
addStyle(String nm, Style parent)
在逻辑样式层次结构中添加新样式。protected void
create(DefaultStyledDocument.ElementSpec[] data)
初始化文档以反映给定的元素结构(即getDefaultRootElement
方法报告的结构。protected AbstractDocument.AbstractElement
createDefaultRoot()
创建用于表示默认文档结构的根元素。Color
getBackground(AttributeSet attr)
从属性集中获取背景颜色。Element
getCharacterElement(int pos)
获取基于位置的字符元素。Element
getDefaultRootElement()
获取默认的根元素。Font
getFont(AttributeSet attr)
从属性集中获取字体。Color
getForeground(AttributeSet attr)
从属性集中获取前景色。Style
getLogicalStyle(int p)
获取分配给给定位置所代表的段落的逻辑样式。Element
getParagraphElement(int pos)
获取偏移量pos
处的段落元素。Style
getStyle(String nm)
获取先前添加的命名样式。Enumeration<?>
getStyleNames()
获取样式名称列表。protected void
insert(int offset, DefaultStyledDocument.ElementSpec[] data)
批量插入新元素。protected void
insertUpdate(AbstractDocument.DefaultDocumentEvent chng, AttributeSet attr)
作为文本插入的结果更新文档结构。void
removeDocumentListener(DocumentListener listener)
删除文档侦听器。void
removeElement(Element elem)
从此文档中删除元素。void
removeStyle(String nm)
删除先前添加到文档中的命名样式。protected void
removeUpdate(AbstractDocument.DefaultDocumentEvent chng)
作为文本删除的结果更新文档结构。void
setCharacterAttributes(int offset, int length, AttributeSet s, boolean replace)
设置文档某些部分的属性。void
setLogicalStyle(int pos, Style s)
设置用于给定位置的段落的逻辑样式。void
setParagraphAttributes(int offset, int length, AttributeSet s, boolean replace)
设置段落的属性。protected void
styleChanged(Style style)
当本文档的任何样式发生变化时调用。-
声明方法的类 javax.swing.text.AbstractDocument
addUndoableEditListener, createBranchElement, createLeafElement, createPosition, dump, fireChangedUpdate, fireInsertUpdate, fireRemoveUpdate, fireUndoableEditUpdate, getAsynchronousLoadPriority, getAttributeContext, getBidiRootElement, getContent, getCurrentWriter, getDocumentFilter, getDocumentListeners, getDocumentProperties, getEndPosition, getLength, getListeners, getProperty, getRootElements, getStartPosition, getText, getText, getUndoableEditListeners, insertString, postRemoveUpdate, putProperty, readLock, readUnlock, remove, removeUndoableEditListener, render, replace, setAsynchronousLoadPriority, setDocumentFilter, setDocumentProperties, writeLock, writeUnlock
-
声明方法的类 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
声明方法的接口 javax.swing.text.Document
addUndoableEditListener, createPosition, getEndPosition, getLength, getProperty, getRootElements, getStartPosition, getText, getText, insertString, putProperty, remove, removeUndoableEditListener, render
-
-
-
-
字段详细信息
-
BUFFER_SIZE_DEFAULT
public static final int BUFFER_SIZE_DEFAULT
初始内容缓冲区的默认大小。- 另请参见:
- 常数字段值
-
buffer
protected DefaultStyledDocument.ElementBuffer buffer
元素缓冲区。
-
-
构造方法详细信息
-
DefaultStyledDocument
public DefaultStyledDocument(AbstractDocument.Content c, StyleContext styles)
构造一个样式文档。- 参数
-
c
- 内容的容器 -
styles
- 可跨文档共享的资源和样式定义
-
DefaultStyledDocument
public DefaultStyledDocument(StyleContext styles)
使用默认内容存储实现和一组共享样式构造样式化文档。- 参数
-
styles
- 样式
-
DefaultStyledDocument
public DefaultStyledDocument()
构造默认样式文档。 这会按BUFFER_SIZE_DEFAULT的大小缓冲输入内容,并且具有样式上下文,该样式上下文由文档的生命周期确定,并且不与其他文档共享。
-
-
方法详细信息
-
getDefaultRootElement
public Element getDefaultRootElement()
获取默认的根元素。- Specified by:
-
getDefaultRootElement
在界面Document
- Specified by:
-
getDefaultRootElement
在类AbstractDocument
- 结果
- 根
- 另请参见:
-
Document.getDefaultRootElement()
-
create
protected void create(DefaultStyledDocument.ElementSpec[] data)
初始化文档以反映给定的元素结构(即getDefaultRootElement
方法报告的结构。如果文档包含任何数据,它将首先被删除。- 参数
-
data
- 元素数据
-
insert
protected void insert(int offset, DefaultStyledDocument.ElementSpec[] data) throws BadLocationException
批量插入新元素。 这对于允许解析文档处于解锁状态并准备元素结构修改很有用。 此方法采用一组标记来描述如何更新元素结构,以便在异步更新情况下可以大大减少写锁定内的时间。虽然大多数Swing方法都不是,但这种方法是线程安全的。 有关更多信息,请参阅Concurrency in Swing 。
- 参数
-
offset
- 起始偏移量> = 0 -
data
- 元素数据 - 异常
-
BadLocationException
- 表示无效的起始偏移量
-
removeElement
public void removeElement(Element elem)
从此文档中删除元素。元素将从其父元素以及元素标识的范围中的文本中删除。 如果元素未与文档关联,则抛出
IllegalArgumentException
。由于文档中不允许使用空分支元素,如果元素是唯一的子元素,则也会以递归方式删除其父元素。 这意味着在替换特定元素的所有子元素时,应在删除旧子元素之前添加新子元素。
元素删除导致两个事件被触发,
DocumentEvent
用于元素结构的更改,UndoableEditEvent
用于文档内容的更改。如果元素包含内容结束标记(文档中的最后一个字符
"\n"
),则不删除此字符; 相反,前面的叶元素被扩展以覆盖角色。 如果最后一个叶子已经以"\n",
结尾,"\n",
它将包含在内容删除中。如果该元素是
null,
NullPointerException
被抛出。 如果元素结构在删除后变为无效,例如,如果元素是文档根元素,则抛出IllegalArgumentException
。 如果当前元素结构无效,则抛出IllegalStateException
。- 参数
-
elem
- 要删除的元素 - 异常
-
NullPointerException
- 如果元素是null
-
IllegalArgumentException
- 如果无法删除元素 -
IllegalStateException
- 如果元素结构无效 - 从以下版本开始:
- 1.7
-
addStyle
public Style addStyle(String nm, Style parent)
在逻辑样式层次结构中添加新样式。 样式属性从下向上解析,因此子项中指定的属性将覆盖父项中指定的属性。- Specified by:
-
addStyle
在界面StyledDocument
- 参数
-
nm
- 样式的名称(在命名样式集合中必须是唯一的)。 如果样式未命名,则名称可以为null,但调用者负责管理返回的引用,因为无法通过名称获取未命名的样式。 未命名的样式可能对诸如样式运行中的字符属性覆盖之类的内容有用。 -
parent
- 父样式。 如果不需要在某些其他样式中解析未指定的属性,则此值可能为null。 - 结果
- 风格
-
removeStyle
public void removeStyle(String nm)
删除先前添加到文档中的命名样式。- Specified by:
-
removeStyle
在界面StyledDocument
- 参数
-
nm
- 要删除的样式的名称
-
getStyle
public Style getStyle(String nm)
获取先前添加的命名样式。- Specified by:
-
getStyle
在界面StyledDocument
- 参数
-
nm
- 样式的名称 - 结果
- 风格
-
getStyleNames
public Enumeration<?> getStyleNames()
获取样式名称列表。- 结果
- 所有的风格名称
-
setLogicalStyle
public void setLogicalStyle(int pos, Style s)
设置用于给定位置的段落的逻辑样式。 如果没有为字符和段落属性显式设置属性,则它们将通过分配给段落的逻辑样式进行解析,而后者又可以通过某个层次结构完全独立于文档中的元素层次结构来解析。虽然大多数Swing方法都不是,但这种方法是线程安全的。 有关更多信息,请参阅Concurrency in Swing 。
- Specified by:
-
setLogicalStyle
在界面StyledDocument
- 参数
-
pos
- 距文档开头的偏移量> = 0 -
s
- 分配给段落的逻辑样式,如果没有则为null
-
getLogicalStyle
public Style getLogicalStyle(int p)
获取分配给给定位置所代表的段落的逻辑样式。- Specified by:
-
getLogicalStyle
在界面StyledDocument
- 参数
-
p
- 要转换为段落并确定分配的逻辑样式的位置> = 0.这是从文档开头的偏移量。 - 结果
- 样式,如果没有则为null
-
setCharacterAttributes
public void setCharacterAttributes(int offset, int length, AttributeSet s, boolean replace)
设置文档某些部分的属性。 在进行更改时,此操作将保持写锁定,并在成功完成更改后将DocumentEvent发送给侦听器。虽然大多数Swing方法都不是,但这种方法是线程安全的。 有关更多信息,请参阅Concurrency in Swing 。
- Specified by:
-
setCharacterAttributes
在界面StyledDocument
- 参数
-
offset
- 文档中的偏移量> = 0 -
length
- 长度> = 0 -
s
- 属性 -
replace
- 如果在设置新属性之前应替换先前的属性,replace
true
-
setParagraphAttributes
public void setParagraphAttributes(int offset, int length, AttributeSet s, boolean replace)
设置段落的属性。虽然大多数Swing方法都不是,但这种方法是线程安全的。 有关更多信息,请参阅Concurrency in Swing 。
- Specified by:
-
setParagraphAttributes
在界面StyledDocument
- 参数
-
offset
- 段落中的偏移量> = 0 -
length
- 受影响的字符数> = 0 -
s
- 属性 -
replace
- 是替换现有属性还是合并它们
-
getParagraphElement
public Element getParagraphElement(int pos)
获取偏移量pos
处的段落元素。 一个段落包含至少一个子元素,通常是一个叶子。- Specified by:
-
getParagraphElement
在界面StyledDocument
- Specified by:
-
getParagraphElement
在类AbstractDocument
- 参数
-
pos
- 起始偏移量> = 0 - 结果
- 元素
-
getCharacterElement
public Element getCharacterElement(int pos)
获取基于位置的字符元素。- Specified by:
-
getCharacterElement
在界面StyledDocument
- 参数
-
pos
- 文档中的位置> = 0 - 结果
- 元素
-
insertUpdate
protected void insertUpdate(AbstractDocument.DefaultDocumentEvent chng, AttributeSet attr)
作为文本插入的结果更新文档结构。 这将发生在写锁定中。 此实现只是解析插入的内容以换行,并为元素缓冲区构建一组指令。- 重写:
-
insertUpdate
在类AbstractDocument
- 参数
-
chng
- 文档更改的说明 -
attr
- 属性
-
removeUpdate
protected void removeUpdate(AbstractDocument.DefaultDocumentEvent chng)
作为文本删除的结果更新文档结构。- 重写:
-
removeUpdate
在类AbstractDocument
- 参数
-
chng
- 文档更改的说明
-
createDefaultRoot
protected AbstractDocument.AbstractElement createDefaultRoot()
创建用于表示默认文档结构的根元素。- 结果
- 元素基础
-
getForeground
public Color getForeground(AttributeSet attr)
从属性集中获取前景色。- Specified by:
-
getForeground
接口StyledDocument
- 参数
-
attr
- 属性集 - 结果
- 颜色
-
getBackground
public Color getBackground(AttributeSet attr)
从属性集中获取背景颜色。- Specified by:
-
getBackground
在界面StyledDocument
- 参数
-
attr
- 属性集 - 结果
- 颜色
-
getFont
public Font getFont(AttributeSet attr)
从属性集中获取字体。- Specified by:
-
getFont
在界面StyledDocument
- 参数
-
attr
- 属性集 - 结果
- 字体
-
styleChanged
protected void styleChanged(Style style)
当本文档的任何样式发生变化时调用。 子类可能希望对损坏的内容有所了解。- 参数
-
style
- 已更改的样式。
-
addDocumentListener
public void addDocumentListener(DocumentListener listener)
添加文档侦听器以通知任何更改。- Specified by:
-
addDocumentListener
在界面Document
- 重写:
-
addDocumentListener
在类AbstractDocument
- 参数
-
listener
- 听众 - 另请参见:
-
Document.addDocumentListener(javax.swing.event.DocumentListener)
-
removeDocumentListener
public void removeDocumentListener(DocumentListener listener)
删除文档侦听器。- Specified by:
-
removeDocumentListener
在界面Document
- 重写:
-
removeDocumentListener
在类AbstractDocument
- 参数
-
listener
- 听众 - 另请参见:
-
Document.removeDocumentListener(javax.swing.event.DocumentListener)
-
-