所有类


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.ACharacterAction
HTML.Tag.ADDRESSCharacterAction
HTML.Tag.APPLETHiddenAction
HTML.Tag.AREAAreaAction
HTML.Tag.BCharacterAction
HTML.Tag.BASEBaseAction
HTML.Tag.BASEFONTCharacterAction
HTML.Tag.BIGCharacterAction
HTML.Tag.BLOCKQUOTEBlockAction
HTML.Tag.BODYBlockAction
HTML.Tag.BRSpecialAction
HTML.Tag.CAPTIONBlockAction
HTML.Tag.CENTERBlockAction
HTML.Tag.CITECharacterAction
HTML.Tag.CODECharacterAction
HTML.Tag.DDBlockAction
HTML.Tag.DFNCharacterAction
HTML.Tag.DIRBlockAction
HTML.Tag.DIVBlockAction
HTML.Tag.DLBlockAction
HTML.Tag.DTParagraphAction
HTML.Tag.EMCharacterAction
HTML.Tag.FONTCharacterAction
HTML.Tag.FORM从 1.4 版本开始,为 BlockAction
HTML.Tag.FRAMESpecialAction
HTML.Tag.FRAMESETBlockAction
HTML.Tag.H1ParagraphAction
HTML.Tag.H2ParagraphAction
HTML.Tag.H3ParagraphAction
HTML.Tag.H4ParagraphAction
HTML.Tag.H5ParagraphAction
HTML.Tag.H6ParagraphAction
HTML.Tag.HEADHeadAction
HTML.Tag.HRSpecialAction
HTML.Tag.HTMLBlockAction
HTML.Tag.ICharacterAction
HTML.Tag.IMGSpecialAction
HTML.Tag.INPUTFormAction
HTML.Tag.ISINDEXIsndexAction
HTML.Tag.KBDCharacterAction
HTML.Tag.LIBlockAction
HTML.Tag.LINKLinkAction
HTML.Tag.MAPMapAction
HTML.Tag.MENUBlockAction
HTML.Tag.METAMetaAction
HTML.Tag.NOFRAMESBlockAction
HTML.Tag.OBJECTSpecialAction
HTML.Tag.OLBlockAction
HTML.Tag.OPTIONFormAction
HTML.Tag.PParagraphAction
HTML.Tag.PARAMHiddenAction
HTML.Tag.PREPreAction
HTML.Tag.SAMPCharacterAction
HTML.Tag.SCRIPTHiddenAction
HTML.Tag.SELECTFormAction
HTML.Tag.SMALLCharacterAction
HTML.Tag.STRIKECharacterAction
HTML.Tag.SCharacterAction
HTML.Tag.STRONGCharacterAction
HTML.Tag.STYLEStyleAction
HTML.Tag.SUBCharacterAction
HTML.Tag.SUPCharacterAction
HTML.Tag.TABLEBlockAction
HTML.Tag.TDBlockAction
HTML.Tag.TEXTAREAFormAction
HTML.Tag.THBlockAction
HTML.Tag.TITLETitleAction
HTML.Tag.TRBlockAction
HTML.Tag.TTCharacterAction
HTML.Tag.UCharacterAction
HTML.Tag.ULBlockAction
HTML.Tag.VARCharacterAction

一旦遇到 </html>,则不再通知 Action。


嵌套类摘要
 classHTMLDocument.HTMLReader.BlockAction
           
 classHTMLDocument.HTMLReader.CharacterAction
           
 classHTMLDocument.HTMLReader.FormAction
          此动作通过构建所有用于表示表单控件的元素来支持表单。
 classHTMLDocument.HTMLReader.HiddenAction
           
 classHTMLDocument.HTMLReader.IsindexAction
           
 classHTMLDocument.HTMLReader.ParagraphAction
           
 classHTMLDocument.HTMLReader.PreAction
           
 classHTMLDocument.HTMLReader.SpecialAction
           
 classHTMLDocument.HTMLReader.TagAction
          为响应对标记的解析而执行的动作。
 
字段摘要
protected  MutableAttributeSetcharAttr
           
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  voidaddContent(char[] data, int offs, int length)
          添加某个具有当前字符属性的文本。
protected  voidaddContent(char[] data, int offs, int length, boolean generateImpliedPIfNecessary)
          添加某个具有当前字符属性的文本。
protected  voidaddSpecialElement(HTML.Tag t, MutableAttributeSet a)
          添加基本上完全是在属性集中指定的内容。
protected  voidblockClose(HTML.Tag t)
          向解析器缓冲区添加一条指令,以关闭给定类型的块元素。
protected  voidblockOpen(HTML.Tag t, MutableAttributeSet attr)
          向解析器缓冲区添加一条指令,以创建具有给定属性的块元素。
 voidflush()
          在 reader 上调用的最后一个方法。
 voidhandleComment(char[] data, int pos)
           
 voidhandleEndOfLineString(String eol)
          它的调用是在完成流的解析之后且在调用 flush 之前。
 voidhandleEndTag(HTML.Tag t, int pos)
          从解析器回调。
 voidhandleSimpleTag(HTML.Tag t, MutableAttributeSet a, int pos)
          从解析器回调。
 voidhandleStartTag(HTML.Tag t, MutableAttributeSet a, int pos)
          从解析器回调。
 voidhandleText(char[] data, int pos)
          解析器调用它来指示遇到一个文本块。
protected  voidpopCharacterStyle()
          将以前压入堆栈的字符样式弹出,以返回以前的样式。
protected  voidpreContent(char[] data)
          添加在 PRE 元素中遇到的给定内容。
protected  voidpushCharacterStyle()
          将当前字符样式压入堆栈,以准备形成新的嵌套字符样式。
protected  voidregisterTag(HTML.Tag t, HTMLDocument.HTMLReader.TagAction a)
          注册给定标记的处理程序。
protected  voidtextAreaContent(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
抛出:
BadLocationException

handleText

public void handleText(char[] data,
                       int pos)
解析器调用它来指示遇到一个文本块。

覆盖:
HTMLEditorKit.ParserCallback 中的 handleText

handleStartTag

public void handleStartTag(HTML.Tag t,
                           MutableAttributeSet a,
                           int pos)
从解析器回调。路由到适当的标记处理程序。

覆盖:
HTMLEditorKit.ParserCallback 中的 handleStartTag

handleComment

public void handleComment(char[] data,
                          int pos)
覆盖:
HTMLEditorKit.ParserCallback 中的 handleComment

handleEndTag

public void handleEndTag(HTML.Tag t,
                         int pos)
从解析器回调。路由到适当的标记处理程序。

覆盖:
HTMLEditorKit.ParserCallback 中的 handleEndTag