文本鼠标悬停在Swing JTextArea上弹出?

2022-09-02 03:07:19

是否有任何内容允许您在 Swing JTextArea 中的单个单词或字母上显示一个小文本弹出窗口(如工具提示)?(或者具有类似功能的 JTextArea 替代项。

我需要的东西应该像工具提示一样,换句话说,只有在鼠标悬停在单词上一两秒钟后才会显示弹出文本,一旦鼠标移开,它就会自动消失。当然,这里棘手的部分是,我希望它在文本中的字符/单词级别,而不是在组件级别......有什么建议吗?


答案 1

您可以根据需要覆盖 getToolTipText(鼠标事件事件)。

附录:JTextComponent,的父级通过两种方法提供位置信息:modelToView()viewToModel()。<<b13>后者应该允许您将鼠标位置转换为文档偏移量。JTextArea


答案 2

当然,这里棘手的部分是我希望它在文本中的字符/单词级别

您可以使用鼠标点来确定您在文本区域中的位置:

int offset = textArea.viewToModel(...);

现在,您已经有了偏移量,您可以在该位置获取字符或单词。Utilities 类具有 getWordStart() 和 getWordEnd() 等方法。

然后,使用 getText(...) 方法获取单词或字符。


推荐