3

所以我有一个JTextPaneakeyListener并在每次按键后从窗格中获取文本。然后我尝试解析 HTML 标签以使它们具有不同的颜色。

public void handleStartTag(HTML.Tag tag, MutableAttributeSet a, int pos)
{   
    if (tag == HTML.Tag.DIV)
    {
        System.out.println("tag Started:" + tag);
        tagFound = true;
    }
}

public void handleEndTag(HTML.Tag tag, int pos)
{
    if (tag == HTML.Tag.DIV)
    {
        System.out.println("tag Ended:" + tag);
        tagFound = false;
    }
}

问题是当我输入

<div

即使没有右括号它也会输出

标签开始:div 标签结束:div

当我关闭标签时不应该handleEndTag()被调用,例如</div>handleStartTag()当我正确结束标签时不应该被调用,如下所示: <div>

4

1 回答 1

0

如果您检查使用的JavaDocDocumentParserHTMLEditorKit.ParserCallback

这将为所有有效标签以及隐含但未明确指定的标签发送回调消息。

你可以检查一下

对于隐含的标记,AttributeSet 参数将具有 Boolean.TRUE 值,用于键 HTMLEditorKit.ParserCallback.IMPLIED。

于 2013-02-26T16:31:50.697 回答