Swing - 确保文本组件中的行可见
我有一些文本组件(特别是 JEditorPane
),并且需要作为对某些事件的响应,以使文本组件中的某些行可见 - 即在必要时滚动到它。如何用 Swing 做到这一点?
我发现 setCaretPosition
但它并不总是好的。如果插入符号已经位于为其设置的新位置,则不会使其再次可见。
I have some text component (particularly it JEditorPane
), and need as response to certain event to make some line in the text component visible - i.e. scroll to it if that necessary. How to do this with Swing?
I find setCaretPosition
but it not always good. If caret was already at position set for it new, it not make it visible again.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
来自教程 如何使用编辑器窗格和文本窗格 和 如何使用滚动窗格 你可以获得 JViewPort 确定可见的矩形
示例:
并且您可以移动通过使用 JScrollPane#scrollRectToVisible(矩形aRect)
from tutorials How to Use Editor Panes and Text Panes and How to Use Scroll Panes you can get JViewPort that's determine visible Rectangle
example:
and you can move with that by using JScrollPane#scrollRectToVisible(Rectangle aRect)
使用 modelToView() 方法传递偏移量并获取矩形。然后使用scrollRectToVisible
Use modelToView() method passing the offset and getting the Rectangles. Then use scrollRectToVisible
像往常一样,斯坦尼斯拉夫完全正确:)。
你必须将你想去的位置保存在某个地方。
然后
你就可以轻松滚动到该矩形或其他任何东西。
StanislavL is totaly right, as usual :).
You have to save somewhere the position you want to go to.
Than you get the ractengle you need with
After that you could easyly scroll to that rectangle or whatever.