格式化JEditorPane的光标,工具提示,链接

时间:2012-04-12 04:15:24

标签: java html swing hyperlink jeditorpane

现在,我正在使用Java Swing创建一个JEditorPane,主要是因为它具有超链接的能力。我已成功地显示链接并让它们在单击时执行行为,但我遇到了一些格式问题。

  1. 如何设置光标以使其通常为箭头,但将鼠标悬停在文本上时会更改为文本光标? (实质上,光标在Web浏览器中的行为)。我试过了

    EditorPane.setCursor(new Cursor(Cursor.TEXT_CURSOR))
    

    但这使得它成为一个文本光标,即使没有悬停在文本上也是如此。现在,悬停在一个链接上显示一个指针;我也想维护这个功能。

  2. 将鼠标悬停在链接上时,显示工具提示或鼠标悬停文本的最佳方法是什么?我尝试修改链接的title属性但没有显示任何内容。

  3. 我试图实现链接以跳到页面的子部分,就像http://en.wikipedia.org/wiki/Xkcd#History会直接进入维基百科的xkcd页面的历史子部分一样。我怎么能这样做?

  4. 对这些中的任何一个的答案都会很棒(而且多个将是非常棒的xP)。非常感谢你的帮助!

3 个答案:

答案 0 :(得分:3)

正如你所说,我也可以简单地给出一个单一的答案,让我逐个尝试,这是你最后一个 Point 3 的答案

只需为您的代码提供ID

<h1><a id = "top"></a>First Line</h1>

现在页面底部的某处写下:

<p><a href = "#top">Return to TOP</a></p>

点击此链接,您将到达PAGE的上述区域。

答案 1 :(得分:2)

积分1&amp;可以使用提到的方法here来解决2。特别是,视图/模型转换方法将允许您分别调整setCursor()getToolTipText()

答案 2 :(得分:2)

您可以从此处获取来源http://java-sl.com/JEditorPaneStructureTool.html 它显示了如何获取文本视图边界。首先,使用viewToModel()方法获取当前鼠标poiunter的插入位置。然后沿着Views树查看叶子视图并计算它的边界。见http://java-sl.com/tip_view_rectangle.html

如果您的鼠标指针位于视图的矩形中,则鼠标悬停在文本上。

您可以检查插入符号位置的文本是否为链接并显示您的工具提示。

使用此http://java-sl.com/tip_links_in_editable.html查看如何检测鼠标是否超过链接。

点3.rd由@nIcE cOw

回答