所以我有一个带有keyListener的JTextPane,并在每次按键后从窗格中获取文本。然后,我尝试解析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
当我结束一个标签例如</div>时不应该调用handleEndTag()吗?当我正确地结束标签时不应该调用handleStartTag()吗:<div>
发布于 2013-02-27 00:31:51
如果您检查HTMLEditorKit.ParserCallback使用的JavaDoc for DocumentParser
这将为所有有效标记、以及隐含但未显式指定的标记发送回调消息。
你可以检查一下
对于隐含的标记,对于键HTMLEditorKit.ParserCallback.IMPLIED,AttributeSet参数的值将为Boolean.TRUE。
https://stackoverflow.com/questions/13937820
复制相似问题