所有类


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 字符级的属性集。
 
从类 javax.swing.text.DefaultStyledDocument 继承的嵌套类/接口
DefaultStyledDocument.AttributeUndoableEdit, DefaultStyledDocument.ElementBuffer, DefaultStyledDocument.ElementSpec, DefaultStyledDocument.SectionElement
 
从类 javax.swing.text.AbstractDocument 继承的嵌套类/接口
AbstractDocument.AbstractElement, AbstractDocument.AttributeContext, AbstractDocument.BranchElement, AbstractDocument.Content, AbstractDocument.DefaultDocumentEvent, AbstractDocument.ElementEdit, AbstractDocument.LeafElement
 
字段摘要
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 插入现有文档的方法所使用的解析器,例如 setInnerHTMLsetOuterHTML
 void setPreservesUnknownTags(boolean preservesTags)
          确定解析器如何处理未知标记。
 void setTokenThreshold(int n)
          设置在试图更新文档元素结构之前要缓冲的标记数。
 
从类 javax.swing.text.DefaultStyledDocument 继承的方法
addDocumentListener, addStyle, getBackground, getCharacterElement, getDefaultRootElement, getFont, getForeground, getLogicalStyle, getParagraphElement, getStyle, getStyleNames, removeDocumentListener, removeStyle, removeUpdate, setCharacterAttributes, setLogicalStyle, styleChanged
 
从类 javax.swing.text.AbstractDocument 继承的方法
addUndoableEditListener, createPosition, dump, fireInsertUpdate, fireRemoveUpdate, 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
 

字段详细信息

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 - 如果给定的位置在关联文档中不是一个有效位置。

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部