所以我有JTextPane
keyListener
,并在每次按键后从窗格中获取文字。然后我尝试解析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>
答案 0 :(得分:0)
如果您查看HTMLEditorKit.ParserCallback
DocumentParser
这会向所有有效标记以及隐含但未明确指定的标记发送回调消息。
你可以检查
对于隐含的标记,对于密钥HTMLEditorKit.ParserCallback.IMPLIED,AttributeSet参数的值为Boolean.TRUE。