Java 在JScrollPane中使用JTextArea设置插入符号位置

Java 在JScrollPane中使用JTextArea设置插入符号位置,java,swing,jscrollpane,jtextarea,caret,Java,Swing,Jscrollpane,Jtextarea,Caret,现在我在JScrollPane中有一个JTextArea。对于当前内容,它同时显示垂直和水平滚动条。我正在尝试实现一个搜索功能,用户可以搜索某个字符串,并将插入符号位置设置为该字符串的第一个匹配项。然而,当我设置插入符号位置时,JScrollPane似乎只垂直滚动。因此,水平离开JTextArea的匹配字符串将完全丢失,水平滚动条将根本不会滚动 我正在使用基本函数 JTextArea的setCaretPosition() 有人知道为什么我的JScrollPane没有使用setCaretPosit

现在我在JScrollPane中有一个JTextArea。对于当前内容,它同时显示垂直和水平滚动条。我正在尝试实现一个搜索功能,用户可以搜索某个字符串,并将插入符号位置设置为该字符串的第一个匹配项。然而,当我设置插入符号位置时,JScrollPane似乎只垂直滚动。因此,水平离开JTextArea的匹配字符串将完全丢失,水平滚动条将根本不会滚动

我正在使用基本函数 JTextArea的setCaretPosition()

有人知道为什么我的JScrollPane没有使用
setCaretPosition()水平移动吗

编辑:


水平滚动条似乎在滚动,但移动太少,几乎看不到。我只能看到角色的第一个像素。是否有办法将滚动条中心(或尽可能多地)移到插入符号位置?

您应该能够使用


或者你也可以看看。它仅垂直居中,但您可以自定义代码以水平居中。

您应该能够使用


或者你也可以看看。它只是垂直居中,但您也可以自定义代码,使其水平居中。

为了更快地获得更好的帮助,请发布一个SSCCE()来演示该问题。或者至少是你目前所拥有的。为了更快地获得更好的帮助,发布一个SSCCE()来演示这个问题。或者至少,到目前为止,你所拥有的。很抱歉,回复太晚,这些例子帮助很大。很抱歉,回复太晚,这些例子帮助很大。