Module  java.desktop
软件包  javax.swing.text.html

Class 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.Tag定义的标签的下表中HTML.Tag

    HTML tags and assigned actions Tag Action 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 As of 1.4 a 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>后,不再通知操作。

    • 构造方法详细信息

      • 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
        最后一个方法叫读者。 它允许任何待处理的更改被刷新到文档中。 由于这是当前同步加载的,所以在这一点上推送了整套更改。
        重写:
        flushHTMLEditorKit.ParserCallback
        异常
        BadLocationException - 如果给定的位置不表示相关文档中的有效位置。
      • handleText

        public void handleText​(char[] data,
                               int pos)
        由解析器调用来指示遇到一个文本块。
        重写:
        handleTextHTMLEditorKit.ParserCallback
        参数
        data - 一个数据
        pos - 一个位置
      • handleEndOfLineString

        public void handleEndOfLineString​(String eol)
        在流已解析后,但在flush之前flush eol将是\ n,\ r或\ r \ n之一,在解析流中遇到最多。
        重写:
        handleEndOfLineStringHTMLEditorKit.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