使用javax.swing.text.StyledDocument </span> </span>在<span>内<span>时获取title属性

时间:2014-03-10 13:41:33

标签: java html swing jtextpane

我将此文字设置为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>

我的目标是,当鼠标悬停时,将title属性显示为ToolTip。我了解到可以覆盖JTextPane.getToolTipText(MouseEvent event)并使用JTextComponent.viewToModel(Point pt)

到目前为止,This istest显示工具提示t1newtitle按预期显示工具提示t2

但是,当我将鼠标悬停在单词title="t2"上时,我无法检索more;相反,它会显示工具提示t1

使用JEditorPaneStructureTool,我得到了这个结构:

Document structure for example html

似乎内部结构存在一些问题。

有没有办法获得正确的标题属性?

1 个答案:

答案 0 :(得分:0)

我知道这个问题的一个技巧,知道HTMLDocument的局限性。尝试使用以下字体替换外部跨度:

    This is <font title="t2" style="color: #00FF00;">new <span style="color: #0000FF;">more</span> title</font> test

我很确定它会起作用。给这些字体一个特定的类。这样,您可以在导出html内容时将其还原为span。