Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swing 如何滚动到JScrollPane中显示的文档中的给定位置_Swing_Jscrollpane - Fatal编程技术网

Swing 如何滚动到JScrollPane中显示的文档中的给定位置

Swing 如何滚动到JScrollPane中显示的文档中的给定位置,swing,jscrollpane,Swing,Jscrollpane,在使用Java Swing组件的应用程序中,我在不可编辑的JScrollPane中有一个JTextPane,以及一些其他字段,用户可以在这些字段中输入一些条件。如果用户单击某个按钮或菜单项,将在JTextPane中搜索满足给定条件的文档部分,如果找到匹配项,该部分将突出显示 那部分已经解决了;我可以找到相关的文档段,知道它的起点和终点(以整数偏移量表示),并突出显示它 但是突出显示的部分可能已经从屏幕上滚了下来,我需要将它滚到JScrollPane的可见部分中。我看到在JComponent上有一

在使用Java Swing组件的应用程序中,我在不可编辑的
JScrollPane
中有一个
JTextPane
,以及一些其他字段,用户可以在这些字段中输入一些条件。如果用户单击某个按钮或菜单项,将在
JTextPane
中搜索满足给定条件的文档部分,如果找到匹配项,该部分将突出显示

那部分已经解决了;我可以找到相关的文档段,知道它的起点和终点(以整数偏移量表示),并突出显示它

但是突出显示的部分可能已经从屏幕上滚了下来,我需要将它滚到JScrollPane的可见部分中。我看到在
JComponent
上有一个方法
scrollRectToVisible(矩形)
,似乎可以完成这项工作,但我看不到如何将文本文档位置整数转换为
矩形


请注意,它是一个不可编辑的JTextPane,我不想将光标移动到高亮显示的部分(用户无论如何都看不到光标),我只想使该部分显示在JScrollPane的可见区域内。

如果文本行的高度相同,则矩形的y值为document position*行高

如果文本行的高度不相同,则矩形的y值是行高到但不包括文档位置的总和

矩形的x值应该是零,或者一些对文本有意义的偏移量。

您可以使用它,它可以返回一个可用于案例的
矩形对象

这里是@camickr关于同一问题的一篇文章


这里还有一个

您没有听说过[modelToView(…)](,int))和viewToModel(…)方法吗。似乎它们适合你提到的这个案子。有关更多信息,请查看此文档。ModelToView看起来不错!今天晚些时候我会试试的。请将您的评论重写为单独的答案,这样如果它有效,我就可以接受。指向
TextUI
的第一个链接似乎无关紧要,因为该类似乎是用于编写可插入的外观,我不知道如何使用它。然而,其他示例在文本组件本身上使用了
modelToView
,他们的技术也很有效。我很难在注释中单独使用此链接,实际上是类
TextUI
,它有这些方法
modelToView(…)和viewToModel(…)
,让您了解该方法的参数,这就是我给出这些链接的原因:-)