- 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
所提供的动作背后的想法是,如果元素结构归结为具有某种风格的段落的段落,则可以提供最自然的文本编辑操作。 X- 200 X- 200 200 X- 200 200 X- 200 200 X- 200 200 X- 200 200 X- 200 200 X- 20045 X- 200 X- 200 X- 20045 X- 这意味着,要解析的流中指定的一些HTML元素将被折叠为属性,在某些情况下,段将被合成。 当HTML元素已转换为属性时,属性键将为HTML.Tag类型,该值将为AttributeSet类型,因此不会丢失任何信息。 这使得许多现有的动作能够工作,以便用户可以输入输入,按回车键,退格键,删除等等,并得到合理的结果。 可以创建选择,应用或删除属性等。考虑到这一点,读者完成的工作可以分为以下几种任务:- 块
- 构建像在流中指定的结构。 这产生包含其他元素的元素。
- 段
- 200的X- 200 X- 200 X- 20045 X- 200 X- 20045 X- 20045ECEColECololEC X-
- 字符
- 将元素作为属性启动和停止在任意文本位置。 这将最终混合到文本的运行中,使用所有当前平展的HTML字符元素。
- 特别
- 生成嵌入式图形元素。
- 形成
- 生成一个像嵌入图形元素的元素,除了它还有一个与之相关的组件模型。
- 隐
- 新新新新旗新新新旗新新新旗新新旗新新旗新新旗新新旗新新旗旗新新旗新新旗新新旗新新旗新新旗新新旗新新旗新新旗新新旗新新旗新新旗新新旗新新旗新新旗新新旗新新旗200新新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新 这有助于保持模型不会丢失信息,并用于存储诸如注释和无法识别的标签。
目前,不支持<APPLET>,<PARAM>,<MAP>,<AREA>,<LINK>,<SCRIPT>和<STYLE>。
所描述的动作的分配在
HTML tags and assigned actions Tag ActionHTML.Tag
定义的标签的下表中HTML.Tag
。HTML.Tag.A
CharacterActionHTML.Tag.ADDRESS
CharacterActionHTML.Tag.APPLET
HiddenActionHTML.Tag.AREA
AreaActionHTML.Tag.B
CharacterActionHTML.Tag.BASE
BaseActionHTML.Tag.BASEFONT
CharacterActionHTML.Tag.BIG
CharacterActionHTML.Tag.BLOCKQUOTE
BlockActionHTML.Tag.BODY
BlockActionHTML.Tag.BR
SpecialActionHTML.Tag.CAPTION
BlockActionHTML.Tag.CENTER
BlockActionHTML.Tag.CITE
CharacterActionHTML.Tag.CODE
CharacterActionHTML.Tag.DD
BlockActionHTML.Tag.DFN
CharacterActionHTML.Tag.DIR
BlockActionHTML.Tag.DIV
BlockActionHTML.Tag.DL
BlockActionHTML.Tag.DT
ParagraphActionHTML.Tag.EM
CharacterActionHTML.Tag.FONT
CharacterActionHTML.Tag.FORM
As of 1.4 a BlockActionHTML.Tag.FRAME
SpecialActionHTML.Tag.FRAMESET
BlockActionHTML.Tag.H1
ParagraphActionHTML.Tag.H2
ParagraphActionHTML.Tag.H3
ParagraphActionHTML.Tag.H4
ParagraphActionHTML.Tag.H5
ParagraphActionHTML.Tag.H6
ParagraphActionHTML.Tag.HEAD
HeadActionHTML.Tag.HR
SpecialActionHTML.Tag.HTML
BlockActionHTML.Tag.I
CharacterActionHTML.Tag.IMG
SpecialActionHTML.Tag.INPUT
FormActionHTML.Tag.ISINDEX
IsndexActionHTML.Tag.KBD
CharacterActionHTML.Tag.LI
BlockActionHTML.Tag.LINK
LinkActionHTML.Tag.MAP
MapActionHTML.Tag.MENU
BlockActionHTML.Tag.META
MetaActionHTML.Tag.NOFRAMES
BlockActionHTML.Tag.OBJECT
SpecialActionHTML.Tag.OL
BlockActionHTML.Tag.OPTION
FormActionHTML.Tag.P
ParagraphActionHTML.Tag.PARAM
HiddenActionHTML.Tag.PRE
PreActionHTML.Tag.SAMP
CharacterActionHTML.Tag.SCRIPT
HiddenActionHTML.Tag.SELECT
FormActionHTML.Tag.SMALL
CharacterActionHTML.Tag.STRIKE
CharacterActionHTML.Tag.S
CharacterActionHTML.Tag.STRONG
CharacterActionHTML.Tag.STYLE
StyleActionHTML.Tag.SUB
CharacterActionHTML.Tag.SUP
CharacterActionHTML.Tag.TABLE
BlockActionHTML.Tag.TD
BlockActionHTML.Tag.TEXTAREA
FormActionHTML.Tag.TH
BlockActionHTML.Tag.TITLE
TitleActionHTML.Tag.TR
BlockActionHTML.Tag.TT
CharacterActionHTML.Tag.U
CharacterActionHTML.Tag.UL
BlockActionHTML.Tag.VAR
CharacterAction遇到</ html>后,不再通知操作。
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 class
HTMLDocument.HTMLReader.BlockAction
默认情况下分配的操作来处理读取器的Block任务。class
HTMLDocument.HTMLReader.CharacterAction
默认分配的操作来处理读者的Character任务。class
HTMLDocument.HTMLReader.FormAction
通过构建用于表示表单控件的所有元素来支持表单的操作。class
HTMLDocument.HTMLReader.HiddenAction
默认分配的操作来处理读者的隐藏任务。class
HTMLDocument.HTMLReader.IsindexAction
默认情况下分配的操作来处理读取器的Isindex任务。class
HTMLDocument.HTMLReader.ParagraphAction
默认分配的操作来处理读者的Paragraph任务。class
HTMLDocument.HTMLReader.PreAction
默认情况下分配的操作来处理读卡器的Pre块任务。class
HTMLDocument.HTMLReader.SpecialAction
默认情况下分配的操作来处理读者的特殊任务。class
HTMLDocument.HTMLReader.TagAction
响应解析标签而执行的操作。
-
Field Summary
Fields Modifier and Type Field 描述 protected MutableAttributeSet
charAttr
当前字符属性集。protected Vector<DefaultStyledDocument.ElementSpec>
parseBuffer
缓冲区以保持建筑元素。-
Fields inherited from class javax.swing.text.html.HTMLEditorKit.ParserCallback
IMPLIED
-
-
构造方法摘要
构造方法 Constructor 描述 HTMLReader(int offset)
使用默认的弹出和推送深度构建HTMLReader,并且不插入任何标签。HTMLReader(int offset, int popDepth, int pushDepth, HTML.Tag insertTag)
构造一个HTMLReader。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 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()
最后一个方法叫读者。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文档。-
Methods inherited from class javax.swing.text.html.HTMLEditorKit.ParserCallback
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
- 要插入的标签(可能为空)
-
-
方法详细信息
-
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
- 一个职位
-
handleComment
public void handleComment(char[] data, int pos)
描述从类复制:HTMLEditorKit.ParserCallback
由解析器调用来指示遇到一段注释。- 重写:
-
handleComment
在HTMLEditorKit.ParserCallback
- 参数
-
data
- 一个数据 -
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
-
-