java - 在 JScrollPane 中使用 JTextArea 设置插入符位置

标签 java swing jscrollpane jtextarea caret

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

我使用的是基本功能 JTextArea 的 setCaretPosition()

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

编辑:

水平滚动条似乎正在滚动,但移动幅度很小,几乎无法察觉。我只能看到角色的第一个像素。有没有办法让滚动条中心(或尽可能)到插入符号位置?

最佳答案

您应该能够使用 Visible Caret Listener .

或者您也可以查看 Center Line in Scroll Pane 。它仅将线垂直居中,但您也可以自定义代码以水平居中。

关于java - 在 JScrollPane 中使用 JTextArea 设置插入符位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4630638/

相关文章:

java - 如何在netbeans中自定义swing UI设计

java - 更好的优化

java - Spring 启动应用程序。运行测试

java - 在 Swing 中使用哪个面板

java - 在 Windows 7 上更改 JRadioButton 图标

jquery - 无法让 jScrollPane 和 SelectBox 插件一起工作

java - 从groovy中的JSON数组中提取特定数据

java - 使用 Apache Async Http 客户端进行异步响应流

java - 将 JScrollPane 锁定到 JTextArea 的底部(java swing)

java - 如何使 JScrollPane 在表开头添加行后不滚动