| |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.swing.text.html
类 HTMLDocument.HTMLReader
java.lang.Object javax.swing.text.html.HTMLEditorKit.ParserCallback javax.swing.text.html.HTMLDocument.HTMLReader
- 正在封闭类:
- HTMLDocument
public class HTMLDocument.HTMLReader
- extends HTMLEditorKit.ParserCallback
一个 HTML reader,用来加载具有 HTML 元素结构的 HTML 文档。这是一组从解析器的回调,实现的目的是为了创建用属性标记的元素集合。该解析构建用于描述所需元素子树的标记(ElementSpec),并使用文档外部类的插入方法以突发的形式将其插入处于写入锁定保护的文档中。
reader 可以由注册的动作(类型为 HTMLDocument.HTMLReader.TagAction
)来配置,该注册动作描述了如何处理动作。提供动作的意义在于,如果元素结构归结为其中具有某种样式的段落,则可以提供最自然的文本编辑操作。某些方面是更自然地从结构上指定的,因此应该允许段落具有任意结构,但需要用结构化动作来编辑它们。这里的含意在于,某些正在被解析的流中所指定的 HTML 元素将被折叠到属性中,并且在某些情况下将合成各个段落。当已经将 HTML 元素转换为属性时,属性键将为 HTML.Tag 类型,并且值将为 AttributeSet 类型,以便不丢失任何信息。这使许多现有动作得以工作,以便用户可以键入输入,单击回车键、退格键、删除键等等,并得到正确的结果。可以创建选项,应用或移除属性等等。记住,reader 所做的工作可以分为以下几类任务:
- 块
- 构建类似于它在流中被指定的结构。这生成包含其他元素的元素。
- 段落
- 类似于块,区别在于我们期望元素可用于段落视图,这样就不必合成段落元素。
- 字符
- 作为属性的元素,它可以在任意文本位置开始和停止。这最终被混合到文本的运行中,带有所有当前变平的 HTML 字符元素。
- 特殊的
- 生成嵌入式图形元素。
- 表单
- 生成类似于嵌入式图形元素的元素,区别在于它还带有与其关联的组件模型。
- 隐藏的
- 创建元素,当以只读方式查看文档时,此元素在视图中是隐藏的,编辑文档时,此元素是可见的。这可用于保持模型不丢失信息,并用于存储诸如注释和未识别标记等此类信息。
目前不支持 <APPLET>、<PARAM>、<MAP>、<AREA>、<LINK>、<SCRIPT> 和 <STYLE>。
下表显示了为 HTML.Tag
中定义的标记所分配的动作。
标记 | 动作 |
---|---|
HTML.Tag.A | CharacterAction |
HTML.Tag.ADDRESS | CharacterAction |
HTML.Tag.APPLET | HiddenAction |
HTML.Tag.AREA | AreaAction |
HTML.Tag.B | CharacterAction |
HTML.Tag.BASE | BaseAction |
HTML.Tag.BASEFONT | CharacterAction |
HTML.Tag.BIG | CharacterAction |
HTML.Tag.BLOCKQUOTE | BlockAction |
HTML.Tag.BODY | BlockAction |
HTML.Tag.BR | SpecialAction |
HTML.Tag.CAPTION | BlockAction |
HTML.Tag.CENTER | BlockAction |
HTML.Tag.CITE | CharacterAction |
HTML.Tag.CODE | CharacterAction |
HTML.Tag.DD | BlockAction |
HTML.Tag.DFN | CharacterAction |
HTML.Tag.DIR | BlockAction |
HTML.Tag.DIV | BlockAction |
HTML.Tag.DL | BlockAction |
HTML.Tag.DT | ParagraphAction |
HTML.Tag.EM | CharacterAction |
HTML.Tag.FONT | CharacterAction |
HTML.Tag.FORM | 从 1.4 版本开始,为 BlockAction |
HTML.Tag.FRAME | SpecialAction |
HTML.Tag.FRAMESET | BlockAction |
HTML.Tag.H1 | ParagraphAction |
HTML.Tag.H2 | ParagraphAction |
HTML.Tag.H3 | ParagraphAction |
HTML.Tag.H4 | ParagraphAction |
HTML.Tag.H5 | ParagraphAction |
HTML.Tag.H6 | ParagraphAction |
HTML.Tag.HEAD | HeadAction |
HTML.Tag.HR | SpecialAction |
HTML.Tag.HTML | BlockAction |
HTML.Tag.I | CharacterAction |
HTML.Tag.IMG | SpecialAction |
HTML.Tag.INPUT | FormAction |
HTML.Tag.ISINDEX | IsndexAction |
HTML.Tag.KBD | CharacterAction |
HTML.Tag.LI | BlockAction |
HTML.Tag.LINK | LinkAction |
HTML.Tag.MAP | MapAction |
HTML.Tag.MENU | BlockAction |
HTML.Tag.META | MetaAction |
HTML.Tag.NOFRAMES | BlockAction |
HTML.Tag.OBJECT | SpecialAction |
HTML.Tag.OL | BlockAction |
HTML.Tag.OPTION | FormAction |
HTML.Tag.P | ParagraphAction |
HTML.Tag.PARAM | HiddenAction |
HTML.Tag.PRE | PreAction |
HTML.Tag.SAMP | CharacterAction |
HTML.Tag.SCRIPT | HiddenAction |
HTML.Tag.SELECT | FormAction |
HTML.Tag.SMALL | CharacterAction |
HTML.Tag.STRIKE | CharacterAction |
HTML.Tag.S | CharacterAction |
HTML.Tag.STRONG | CharacterAction |
HTML.Tag.STYLE | StyleAction |
HTML.Tag.SUB | CharacterAction |
HTML.Tag.SUP | CharacterAction |
HTML.Tag.TABLE | BlockAction |
HTML.Tag.TD | BlockAction |
HTML.Tag.TEXTAREA | FormAction |
HTML.Tag.TH | BlockAction |
HTML.Tag.TITLE | TitleAction |
HTML.Tag.TR | BlockAction |
HTML.Tag.TT | CharacterAction |
HTML.Tag.U | CharacterAction |
HTML.Tag.UL | BlockAction |
HTML.Tag.VAR | CharacterAction |
一旦遇到 </html>,则不再通知 Action。
嵌套类摘要 | |
---|---|
class | HTMLDocument.HTMLReader.BlockAction |
class | HTMLDocument.HTMLReader.CharacterAction |
class | HTMLDocument.HTMLReader.FormAction 此动作通过构建所有用于表示表单控件的元素来支持表单。 |
class | HTMLDocument.HTMLReader.HiddenAction |
class | HTMLDocument.HTMLReader.IsindexAction |
class | HTMLDocument.HTMLReader.ParagraphAction |
class | HTMLDocument.HTMLReader.PreAction |
class | HTMLDocument.HTMLReader.SpecialAction |
class | HTMLDocument.HTMLReader.TagAction 为响应对标记的解析而执行的动作。 |
字段摘要 | |
---|---|
protected MutableAttributeSet | charAttr |
protected Vector<DefaultStyledDocument.ElementSpec> | parseBuffer |
从类 javax.swing.text.html.HTMLEditorKit.ParserCallback 继承的字段 |
---|
IMPLIED |
构造方法摘要 | |
---|---|
HTMLDocument.HTMLReader(int offset) | |
HTMLDocument.HTMLReader(int offset, int popDepth, int pushDepth, HTML.Tag insertTag) |
方法摘要 | |
---|---|
protected void | addContent(char[] data, int offs, int length) 添加某个具有当前字符属性的文本。 |
protected void | addContent(char[] data, int offs, int length, boolean generateImpliedPIfNecessary) 添加某个具有当前字符属性的文本。 |
protected void | addSpecialElement(HTML.Tag t, MutableAttributeSet a) 添加基本上完全是在属性集中指定的内容。 |
protected void | blockClose(HTML.Tag t) 向解析器缓冲区添加一条指令,以关闭给定类型的块元素。 |
protected void | blockOpen(HTML.Tag t, MutableAttributeSet attr) 向解析器缓冲区添加一条指令,以创建具有给定属性的块元素。 |
void | flush() 在 reader 上调用的最后一个方法。 |
void | handleComment(char[] data, int pos) |
void | handleEndOfLineString(String eol) 它的调用是在完成流的解析之后且在调用 flush 之前。 |
void | handleEndTag(HTML.Tag t, int pos) 从解析器回调。 |
void | handleSimpleTag(HTML.Tag t, MutableAttributeSet a, int pos) 从解析器回调。 |
void | handleStartTag(HTML.Tag t, MutableAttributeSet a, int pos) 从解析器回调。 |
void | handleText(char[] data, int pos) 解析器调用它来指示遇到一个文本块。 |
protected void | popCharacterStyle() 将以前压入堆栈的字符样式弹出,以返回以前的样式。 |
protected void | preContent(char[] data) 添加在 PRE 元素中遇到的给定内容。 |
protected void | pushCharacterStyle() 将当前字符样式压入堆栈,以准备形成新的嵌套字符样式。 |
protected void | registerTag(HTML.Tag t, HTMLDocument.HTMLReader.TagAction a) 注册给定标记的处理程序。 |
protected void | textAreaContent(char[] data) 将给定的内容添加到 textarea 文档。 |
从类 javax.swing.text.html.HTMLEditorKit.ParserCallback 继承的方法 |
---|
handleError |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
parseBuffer
protected Vector<DefaultStyledDocument.ElementSpec> parseBuffer
charAttr
protected MutableAttributeSet charAttr
构造方法详细信息 |
---|
HTMLDocument.HTMLReader
public HTMLDocument.HTMLReader(int offset)
HTMLDocument.HTMLReader
public HTMLDocument.HTMLReader(int offset, int popDepth, int pushDepth, HTML.Tag insertTag)
方法详细信息 |
---|
flush
public void flush() throws BadLocationException
- 在 reader 上调用的最后一个方法。它允许将任何挂起的更改刷新到文档中。因为当前这是同步加载的,所以此时会压入整个更改的集合。
- 覆盖:
- 类
HTMLEditorKit.ParserCallback
中的flush
handleText
public void handleText(char[] data, int pos)
- 解析器调用它来指示遇到一个文本块。
- 覆盖:
- 类
HTMLEditorKit.ParserCallback
中的handleText
handleStartTag
public void handleStartTag(HTML.Tag t, MutableAttributeSet a, int pos)
- 从解析器回调。路由到适当的标记处理程序。
handleComment
public void handleComment(char[] data, int pos)
handleEndTag
public void handleEndTag(HTML.Tag t, int pos)
- 从解析器回调。路由到适当的标记处理程序。
- 覆盖:
- 类
HTMLEditorKit.ParserCallback
中的handleEndTag