3

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

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

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

    但这使它成为无处不在的文本光标,即使没有将鼠标悬停在文本上。现在,将鼠标悬停在链接上会显示指针手;我也想保持这个功能。

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

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

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

4

3 回答 3

3

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

只需像这样为您的标签提供一个 id

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

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

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

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

于 2012-04-12T05:40:15.233 回答
2

可以使用此处提到的方法解决第 1 点和第 2 点。特别是,视图/模型转换方法将让您分别设置setCursor()和。getToolTipText()

于 2012-04-12T05:47:54.663 回答
2

您可以从这里获取源代码http://java-sl.com/JEditorPaneStructureTool.html 它展示了如何获取文本视图边界。首先,您使用 viewToModel() 方法获取当前鼠标指针的插入符号位置。然后沿着视图树向下实现叶视图并计算它的边界。看到这个http://java-sl.com/tip_view_rectangle.html

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

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

使用这个http://java-sl.com/tip_links_in_editable.html来查看如何检测鼠标是否在链接上。

@nIcE cOw 回答了第 3.rd 点

于 2012-04-12T06:06:33.833 回答