【问题标题】:Formatting JEditorPane's cursor, tooltips, links格式化 JEditorPane 的光标、工具提示、链接
【发布时间】:2012-04-24 10:16:06
【问题描述】:

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

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

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

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

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

  3. 我试图实现链接以跳到页面的一个小节,就像http://en.wikipedia.org/wiki/Xkcd#History 会直接带你到维基百科的 xkcd 页面的历史小节一样。我该怎么做?

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

【问题讨论】:

    标签: java html swing hyperlink jeditorpane


    【解决方案1】:

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

    的答案

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

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        您可以从这里获取源代码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 点

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-12-07
          • 1970-01-01
          • 1970-01-01
          • 2014-03-04
          • 2014-04-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多