在使用Java Swing组件的应用程序中,我在不可编辑的JTextPane
内部有JScrollPane
,以及用户可以输入某些条件的其他一些字段。如果用户单击某个按钮或菜单项,则会在JTextPane
中搜索符合给定条件的文档部分,如果找到匹配,则该部分将突出显示。
那部分解决了;我可以找到相关的文档片段,知道它的起点和终点(以整数偏移量表示),然后突出显示它。
但突出显示的段可能已从屏幕滚动,我需要将其滚动到JScrollPane的可见部分内。我看到scrollRectToVisible(Rectangle)
上的方法JComponent
似乎可以完成这项工作,但我没有看到如何将文本文档位置整数转换为Rectangle
。
请注意,它是一个不可编辑的JTextPane,我不想将光标移动到突出显示的段(用户无论如何都看不到光标),我只想让段显示在JScrollPane的可见区域内
答案 0 :(得分:2)
答案 1 :(得分:0)
如果文本行的高度相同,则Rectangle的y值为文档位置*行高。
如果文本行的高度不同,则Rectangle的y值是行高的总和,但不包括文档位置。
Rectangle的x值将为零,或者对文本有意义的偏移量。