我将此文本设置为JTextPane
,内容类型为text/html
。
<!doctype html>
<html>
<head><title>Test document</title></head>
<body style="font-family:monospace">
<p title="t1" style="color: #FF0000;">
This is <span title="t2" style="color: #00FF00;">new <span style="color: #0000FF;">more</span> title</span> test
</p>
</body>
</html>
我的目标是,让标题属性在鼠标悬停时显示为工具提示。我了解到重写
JTextPane.getToolTipText(MouseEvent event)
和使用JTextComponent.viewToModel(Point pt)
是可能的。到目前为止,
This is
和test
显示工具提示t1
,new
和title
显示工具提示t2
。但是,当我将鼠标移到单词
title="t2"
上时,无法检索more
;相反,它会显示工具提示t1
。使用JEditorPaneStructureTool,我得到了这个结构:
内部结构似乎有一些问题。
有什么方法可以得到正确的标题属性吗?
最佳答案
我知道HTMLDocument的局限性,这是解决这个问题的一个诀窍。尝试用下列字体替换外跨距:
This is <font title="t2" style="color: #00FF00;">new <span style="color: #0000FF;">more</span> title</font> test
我很肯定会成功的。给这些字体一个特定的类。这样,您可以在导出html内容时将它们还原为span。