- java.lang.Object
-
- javax.swing.text.html.HTMLEditorKit.ParserCallback
-
- javax.swing.text.html.HTMLDocument.HTMLReader
-
- Enclosing class:
- HTMLDocument
public class HTMLDocument.HTMLReader extends HTMLEditorKit.ParserCallback
用于加载带有HTML元素结构的HTML文档的HTML阅读器。 这是来自解析器的一组回调,用于创建一组标记有属性的元素。 解析构建了描述所需元素子树的令牌(ElementSpec),并使用文档外部类上的insert方法在写锁的保护下将其突发到文档中。可以通过注册描述如何处理操作的操作(类型
HTMLDocument.HTMLReader.TagAction)来配置阅读器。 提供的操作背后的想法是,如果元素结构归结为其中包含某种样式的段落的段落,则可以提供最自然的文本编辑操作。 有些东西在结构上更自然地指定,因此应该允许在段落之上使用任意结构,但需要使用结构动作进行编辑。 这意味着在被解析的流中指定的一些HTML元素将被折叠成属性,并且在某些情况下段落将被合成。 当HTML元素已转换为属性时,属性键的类型为HTML.Tag,值的类型为AttributeSet,因此不会丢失任何信息。 这使得许多现有操作能够工作,以便用户可以键入输入,点击返回键,退格键,删除等,并获得合理的结果。 可以创建选择,应用或删除属性等。考虑到这一点,读者完成的工作可以分为以下几类任务:- 块
- 构建流中指定的结构。 这会生成包含其他元素的元素。
- 段
- 与块一样,除了预期元素将与段落视图一起使用,因此不需要合成段落元素。
- 字符
- 将元素作为将在任意文本位置开始和停止的属性进行贡献。 这将最终混合到一系列文本中,包含所有当前展平的HTML字符元素。
- 特别
- 生成嵌入式图形元素。
- 形成
- 生成一个类似于嵌入式图形元素的元素,除了它还有一个与之关联的组件模型。
- 隐
- 创建一个在以只读方式查看文档时从视图中隐藏的元素,并在编辑文档时可见。 这有助于防止模型丢失信息,并用于存储注释和无法识别的标记等内容。
目前,不支持<APPLET>,<PARAM>,<MAP>,<AREA>,<LINK>,<SCRIPT>和<STYLE>。
对于
HTML tags and assigned actions Tag ActionHTML.Tag定义的标记,下表显示了所描述的操作的分配。HTML.Tag.ACharacterActionHTML.Tag.ADDRESSCharacterActionHTML.Tag.APPLETHiddenActionHTML.Tag.AREAAreaActionHTML.Tag.BCharacterActionHTML.Tag.BASEBaseActionHTML.Tag.BASEFONTCharacterActionHTML.Tag.BIGCharacterActionHTML.Tag.BLOCKQUOTEBlockActionHTML.Tag.BODYBlockActionHTML.Tag.BRSpecialActionHTML.Tag.CAPTIONBlockActionHTML.Tag.CENTERBlockActionHTML.Tag.CITECharacterActionHTML.Tag.CODECharacterActionHTML.Tag.DDBlockActionHTML.Tag.DFNCharacterActionHTML.Tag.DIRBlockActionHTML.Tag.DIVBlockActionHTML.Tag.DLBlockActionHTML.Tag.DTParagraphActionHTML.Tag.EMCharacterActionHTML.Tag.FONTCharacterActionHTML.Tag.FORMAs of 1.4 a BlockActionHTML.Tag.FRAMESpecialActionHTML.Tag.FRAMESETBlockActionHTML.Tag.H1ParagraphActionHTML.Tag.H2ParagraphActionHTML.Tag.H3ParagraphActionHTML.Tag.H4ParagraphActionHTML.Tag.H5ParagraphActionHTML.Tag.H6ParagraphActionHTML.Tag.HEADHeadActionHTML.Tag.HRSpecialActionHTML.Tag.HTMLBlockActionHTML.Tag.ICharacterActionHTML.Tag.IMGSpecialActionHTML.Tag.INPUTFormActionHTML.Tag.ISINDEXIsndexActionHTML.Tag.KBDCharacterActionHTML.Tag.LIBlockActionHTML.Tag.LINKLinkActionHTML.Tag.MAPMapActionHTML.Tag.MENUBlockActionHTML.Tag.METAMetaActionHTML.Tag.NOFRAMESBlockActionHTML.Tag.OBJECTSpecialActionHTML.Tag.OLBlockActionHTML.Tag.OPTIONFormActionHTML.Tag.PParagraphActionHTML.Tag.PARAMHiddenActionHTML.Tag.PREPreActionHTML.Tag.SAMPCharacterActionHTML.Tag.SCRIPTHiddenActionHTML.Tag.SELECTFormActionHTML.Tag.SMALLCharacterActionHTML.Tag.STRIKECharacterActionHTML.Tag.SCharacterActionHTML.Tag.STRONGCharacterActionHTML.Tag.STYLEStyleActionHTML.Tag.SUBCharacterActionHTML.Tag.SUPCharacterActionHTML.Tag.TABLEBlockActionHTML.Tag.TDBlockActionHTML.Tag.TEXTAREAFormActionHTML.Tag.THBlockActionHTML.Tag.TITLETitleActionHTML.Tag.TRBlockActionHTML.Tag.TTCharacterActionHTML.Tag.UCharacterActionHTML.Tag.ULBlockActionHTML.Tag.VARCharacterAction遇到</ html>后,不再通知操作。
-
-
嵌套类汇总
嵌套类 变量和类型 类 描述 classHTMLDocument.HTMLReader.BlockAction默认情况下分配的操作用于处理阅读器的阻止任务。classHTMLDocument.HTMLReader.CharacterAction默认情况下分配的操作,用于处理阅读器的“角色”任务。classHTMLDocument.HTMLReader.FormAction通过构建用于表示表单控件的所有元素来支持表单的操作。classHTMLDocument.HTMLReader.HiddenAction默认情况下分配的操作,用于处理读者的隐藏任务。classHTMLDocument.HTMLReader.IsindexAction默认情况下分配的操作,用于处理阅读器的Isindex任务。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
-
-
构造方法摘要
构造方法 构造器 描述 HTMLReader(int offset)使用默认弹出和推送深度构造HTMLReader,不插入任何标记。HTMLReader(int offset, int popDepth, int pushDepth, HTML.Tag insertTag)构造一个HTMLReader。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 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()最后一种方法呼吁读者。voidhandleEndOfLineString(String eol)在解析流之后但在flush之前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
handleComment, handleError
-
-
-
-
字段详细信息
-
parseBuffer
protected Vector<DefaultStyledDocument.ElementSpec> parseBuffer
缓冲区以保持构建元素。
-
charAttr
protected MutableAttributeSet charAttr
当前字符属性集。
-
-
构造方法详细信息
-
HTMLReader
public HTMLReader(int offset)
使用默认弹出和推送深度构造HTMLReader,不插入任何标记。- 参数
-
offset- 起始偏移量
-
HTMLReader
public HTMLReader(int offset, int popDepth, int pushDepth, HTML.Tag insertTag)构造一个HTMLReader。- 参数
-
offset- 起始偏移量 -
popDepth- 在插入新元素之前要提升多少个父母 -
pushDepth- 插入前要下降多少个父亲(相对于popDepth) -
insertTag- 要插入的标记(可以为null)
-
-
方法详细信息
-
flush
public void flush() throws BadLocationException最后一种方法呼吁读者。 它允许将任何挂起的更改刷新到文档中。 由于当前正在同步加载,因此此时会推入整组更改。- 重写:
-
flush在HTMLEditorKit.ParserCallback类中 - 异常
-
BadLocationException- 如果给定位置不代表关联文档中的有效位置。
-
handleText
public void handleText(char[] data, int pos)由解析器调用以指示遇到了一块文本。- 重写:
-
handleText类HTMLEditorKit.ParserCallback - 参数
-
data- 数据 -
pos- 一个职位
-
handleStartTag
public void handleStartTag(HTML.Tag t, MutableAttributeSet a, int pos)
来自解析器的回调。 路由到标记的相应处理程序。- 重写:
-
handleStartTag,类HTMLEditorKit.ParserCallback - 参数
-
t- HTML标记 -
a- 一组属性 -
pos- 职位
-
handleEndTag
public void handleEndTag(HTML.Tag t, int pos)
来自解析器的回调。 路由到标记的相应处理程序。- 重写:
-
handleEndTag,类HTMLEditorKit.ParserCallback - 参数
-
t- HTML标记 -
pos- 一个职位
-
handleSimpleTag
public void handleSimpleTag(HTML.Tag t, MutableAttributeSet a, int pos)
来自解析器的回调。 路由到标记的相应处理程序。- 重写:
-
handleSimpleTag,类HTMLEditorKit.ParserCallback - 参数
-
t- HTML标记 -
a- 一组属性 -
pos- 一个职位
-
handleEndOfLineString
public void handleEndOfLineString(String eol)
在解析流之后但在flush之前flush。eol将是\ n,\ r或\ r \ n之一,它在解析流时遇到的最多。- 重写:
-
handleEndOfLineString,类HTMLEditorKit.ParserCallback - 参数
-
eol- eol的值 - 从以下版本开始:
- 1.3
-
registerTag
protected void registerTag(HTML.Tag t, HTMLDocument.HTMLReader.TagAction a)
注册给定标记的处理程序。 默认情况下,所有已知的标签都已注册。 这可用于更改特定标记的处理或添加对自定义标记的支持。- 参数
-
t- HTML标记 -
a- 标记操作处理程序
-
pushCharacterStyle
protected void pushCharacterStyle()
将当前字符样式推送到堆栈以准备形成新的嵌套字符样式。
-
popCharacterStyle
protected void popCharacterStyle()
从堆栈中弹出先前推送的字符样式以返回先前的样式。
-
textAreaContent
protected void textAreaContent(char[] data)
将给定内容添加到textarea文档中。 当我们处于textarea上下文时,会调用此方法。 因此,所有看到的文本都属于文本区域,因此被添加到与文本区域关联的TextAreaDocument中。- 参数
-
data- 给定的内容
-
preContent
protected void preContent(char[] data)
添加PRE元素中遇到的给定内容。 这将合成行来保存文本的运行,并调用addContent来实际添加文本。- 参数
-
data- 给定的内容
-
blockOpen
protected void blockOpen(HTML.Tag t, MutableAttributeSet attr)
向解析缓冲区添加一条指令,以创建具有给定属性的块元素。- 参数
-
t- HTML标记 -
attr- 属性集
-
blockClose
protected void blockClose(HTML.Tag t)
向解析缓冲区添加一条指令以关闭给定类型的块元素。- 参数
-
t- HTML标记
-
addContent
protected void addContent(char[] data, int offs, int length)添加一些包含当前字符属性的文本。- 参数
-
data- 要添加的内容 -
offs- 初始偏移量 -
length- 长度
-
addContent
protected void addContent(char[] data, int offs, int length, boolean generateImpliedPIfNecessary)添加一些包含当前字符属性的文本。- 参数
-
data- 要添加的内容 -
offs- 初始偏移量 -
length- 长度 -
generateImpliedPIfNecessary- 是否生成隐含段落
-
addSpecialElement
protected void addSpecialElement(HTML.Tag t, MutableAttributeSet a)
添加基本上完全在属性集中指定的内容。- 参数
-
t- HTML标记 -
a- the attribute set
-
-