|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.swing.text.html
类 HTMLDocument
java.lang.Object javax.swing.text.AbstractDocument javax.swing.text.DefaultStyledDocument javax.swing.text.html.HTMLDocument
- 所有已实现的接口:
- Serializable, Document, StyledDocument
-
public class HTMLDocument
- extends DefaultStyledDocument
对 HTML 进行建模的文档。此模型的目的是支持浏览和编辑。因此,默认情况下 HTML 文档所描述的结构不是精确一致的。默认情况下被建模的元素结构是通过 HTMLDocument.HTMLReader
类构建的,此类实现了解析器所期望的 HTMLEditorKit.ParserCallback
协议。要更改结构,可以创建 HTMLReader
的子类,并且重新实现 getReader(int)
方法以返回新的 reader 实现。有关创建默认结构的细节,请参考 HTMLReader
文档。其目的是使文档无丢失(non-lossy)(虽然重新生成 HTML 格式可能导致出现不同的格式)。
文档只对 HTML 建模,并且不尝试在其中存储视图属性。元素由 StyleContext.NameAttribute
属性标识,此属性应该始终有一个标识元素种类的 HTML.Tag
类型值。某些元素(例如注释)是合成的。HTMLFactory
使用此属性来确定要构建哪种视图。
此文档支持增量加载。TokenThreshold
属性控制在试图更新文档的元素结构之前要缓冲的解析数量。通过 EditorKit
来设置此属性,以便子类可以禁用它。
Base
属性根据解析哪些相对 URL 来确定 URL。在默认情况下,如果属性值是 URL,则这将是 Document.StreamDescriptionProperty
。如果遇到 <BASE> 标记,则基本 URL 将成为该标记所指定的 URL。因为基本 URL 是一个属性,因此可以直接设置它。
此文档的默认内容存储机制是一个间隙缓冲区 (GapContent
)。通过使用带有 Content
实现的构造方法,可以提供某些替代方法。
嵌套类摘要 | |
---|---|
class |
HTMLDocument.BlockElement 表示结构性 HTML 块 的元素。 |
class |
HTMLDocument.HTMLReader 一个 HTML reader,用来加载具有 HTML 元素结构的 HTML 文档。 |
static class |
HTMLDocument.Iterator 对特定类型的标记进行迭代的迭代器。 |
class |
HTMLDocument.RunElement 表示文本块的元素,该文本块具有一个分配给它的 HTML 字符级的属性集。 |
字段摘要 | |
---|---|
static String |
AdditionalComments 文档属性键值。 |
从类 javax.swing.text.DefaultStyledDocument 继承的字段 |
---|
buffer, BUFFER_SIZE_DEFAULT |
从类 javax.swing.text.AbstractDocument 继承的字段 |
---|
BAD_LOCATION, BidiElementName, ContentElementName, ElementNameAttribute, listenerList, ParagraphElementName, SectionElementName |
从接口 javax.swing.text.Document 继承的字段 |
---|
StreamDescriptionProperty, TitleProperty |
构造方法摘要 | |
---|---|
HTMLDocument() 使用默认的缓冲区大小和默认的 StyleSheet 构造 HTML 文档。 |
|
HTMLDocument(AbstractDocument.Content c, StyleSheet styles) 构造具有给定内容存储实现和给定样式/属性存储机制的 HTML 文档。 |
|
HTMLDocument(StyleSheet styles) 构造具有默认内容存储实现和指定样式/属性存储机制的 HTML 文档。 |
方法摘要 | |
---|---|
protected void |
create(DefaultStyledDocument.ElementSpec[] data) 替换具有给定元素规范的文档内容。 |
protected Element |
createBranchElement(Element parent, AttributeSet a) 创建文档分支元素,它可以包含其他元素。 |
protected AbstractDocument.AbstractElement |
createDefaultRoot() 创建用于表示默认文档结构的根元素。 |
protected Element |
createLeafElement(Element parent, AttributeSet a, int p0, int p1) 创建直接表示文本的文档叶元素(没有任何子级)。 |
protected void |
fireChangedUpdate(DocumentEvent e) 通知所有对此事件类型的通知感兴趣的已注册侦听器。 |
protected void |
fireUndoableEditUpdate(UndoableEditEvent e) 通知所有对此事件类型的通知感兴趣的已注册侦听器。 |
URL |
getBase() 返回解析相对 URL 所根据的位置。 |
Element |
getElement(Element e, Object attribute, Object value) 返回 e (它包含具有值 value 的属性 attribute )的子元素,如果未找到,则返回 null 。 |
Element |
getElement(String id) 返回具有给定 id Attribute 的元素。 |
HTMLDocument.Iterator |
getIterator(HTML.Tag t) 获取指定 HTML 标记的迭代器。 |
HTMLEditorKit.Parser |
getParser() 返回将 HTML 插入现有文档时所使用的解析器。 |
boolean |
getPreservesUnknownTags() 返回在遇到未知标记时所观察到的解析器行为。 |
HTMLEditorKit.ParserCallback |
getReader(int pos) 获取加载带有 HTML 的文档时所用解析器的 reader。 |
HTMLEditorKit.ParserCallback |
getReader(int pos, int popDepth, int pushDepth, HTML.Tag insertTag) 返回加载带有 HTML 的文档时所用解析器的 reader。 |
StyleSheet |
getStyleSheet() 获取具有特定于文档的显示规则(CSS)的 StyleSheet ,其中这些规则是在 HTML 文档本身中指定的。 |
int |
getTokenThreshold() 获得在试图更新文档元素结构之前要缓冲的标记数。 |
protected void |
insert(int offset, DefaultStyledDocument.ElementSpec[] data) 批量插入新元素。 |
void |
insertAfterEnd(Element elem, String htmlText) 将指定为字符串的 HTML 插入给定元素的起始处之后。 |
void |
insertAfterStart(Element elem, String htmlText) 将指定为字符串的 HTML 插入元素的起始处。 |
void |
insertBeforeEnd(Element elem, String htmlText) 将指定为字符串的 HTML 插入元素的结尾处。 |
void |
insertBeforeStart(Element elem, String htmlText) 将指定为字符串的 HTML 插入给定元素的起始处之前。 |
protected void |
insertUpdate(AbstractDocument.DefaultDocumentEvent chng, AttributeSet attr) 由于插入文本而导致更新文档的结构。 |
void |
processHTMLFrameHyperlinkEvent(HTMLFrameHyperlinkEvent e) 处理 HTML 框架中的文档所生成的 HyperlinkEvents 。 |
void |
setBase(URL u) 设置解析相对 URL 所根据的位置。 |
void |
setInnerHTML(Element elem, String htmlText) 用指定为 HTML 字符串的内容替换给定元素的子元素。 |
void |
setOuterHTML(Element elem, String htmlText) 用指定为 HTML 字符串的内容替换父元素中的给定元素。 |
void |
setParagraphAttributes(int offset, int length, AttributeSet s, boolean replace) 设置段落属性。 |
void |
setParser(HTMLEditorKit.Parser parser) 设置将 html 插入现有文档的方法所使用的解析器,例如 setInnerHTML 和 setOuterHTML 。 |
void |
setPreservesUnknownTags(boolean preservesTags) 确定解析器如何处理未知标记。 |
void |
setTokenThreshold(int n) 设置在试图更新文档元素结构之前要缓冲的标记数。 |
从类 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 |
字段详细信息 |
---|
AdditionalComments
public static final String AdditionalComments
-
文档属性键值。键值将是 String 的 Vector,这是正文中没有的注释。
- 另请参见:
- 常量字段值
构造方法详细信息 |
---|
HTMLDocument
public HTMLDocument()
-
使用默认的缓冲区大小和默认的
StyleSheet
构造 HTML 文档。这是HTMLDocument(Content, StyleSheet)
构造方法的一个便捷方法。
HTMLDocument
public HTMLDocument(StyleSheet styles)
-
构造具有默认内容存储实现和指定样式/属性存储机制的 HTML 文档。这是
HTMLDocument(Content, StyleSheet)
构造方法的一个便捷方法。- 参数:
styles
- 样式
HTMLDocument
public HTMLDocument(AbstractDocument.Content c, StyleSheet styles)
-
构造具有给定内容存储实现和给定样式/属性存储机制的 HTML 文档。
- 参数:
c
- 内容的容器styles
- 样式
方法详细信息 |
---|
getReader
public HTMLEditorKit.ParserCallback getReader(int pos)
-
获取加载带有 HTML 的文档时所用解析器的 reader。实现它的目的是为了返回
HTMLDocument.HTMLReader
的一个实例。如果需要,子类可以重新实现此方法来更改文档获取结构的方式。(例如,处理自定义标记,或者从结构上表示字符样式元素。) -
- 参数:
pos
- 起始位置- 返回:
- 解析器用于加载文档的 reader
getReader
public HTMLEditorKit.ParserCallback getReader(int pos, int popDepth, int pushDepth, HTML.Tag insertTag)
-
返回加载带有 HTML 的文档时所用解析器的 reader。实现它的目的是为了返回
HTMLDocument.HTMLReader
的一个实例。如果需要,子类可以重新实现此方法来更改文档获取结构的方式。(例如,处理自定义标记,或者从结构上表示字符样式元素。)这是
getReader(int, int, int, HTML.Tag, TRUE)
的一个便捷方法。 -
- 参数:
popDepth
- 插入前要生成的ElementSpec.EndTagTypes
的数量pushDepth
- 插入前但生成结束标记之后,应该生成的ElementSpec.StartTagTypes
的数量(它具有ElementSpec.JoinNextDirection
方向)insertTag
- 开始插入文档的首个标记- 返回:
- 解析器用于加载文档的 reader
getBase
public URL getBase()
- 返回解析相对 URL 所根据的位置。默认情况下,如果文档是从 URL 加载的,则这将是文档的 URL。如果找到 BASE 标记并可以对其进行解析,则它将充当基本位置。
-
- 返回:
- 基本位置
setBase
public void setBase(URL u)
-
设置解析相对 URL 所根据的位置。默认情况下,如果文档是从 URL 加载的,则这将是文档的 URL。如果找到 BASE 标记并可以对其进行解析,则它将充当基本位置。
这还将
StyleSheet
的基本 URL 以及文档的基本 URL 设置为u
。 -
- 参数:
u
- 所需的基本 URL
insert
protected void insert(int offset, DefaultStyledDocument.ElementSpec[] data) throws BadLocationException
- 批量插入新元素。这是在文档中创建元素的方式。通过解析确定所需的结构,并创建作为标记集合的规范(它描述了编辑),同时保留文档的写入锁定打开。然后 reader 以突发的形式调用此方法,以获得短时的写入锁定(例如正在实际更改文档时)。
-
- 覆盖:
-
类
DefaultStyledDocument
中的insert
-
- 参数:
offset
- 起始偏移量data
- 元素数据- 抛出:
BadLocationException
- 如果给定的位置在关联文档中不是一个有效位置。