我想防止滚动窗格在其视图中的内容展开时滚动。任何指针?我试过谷歌搜索标题的变体,以及阅读 JScrollPane 的所有文档,但我仍然有点困惑。
编辑:在滚动窗格中,我有一个文本窗格,在它旁边我有另一个文本窗格,显示它旁边窗格的行号。每次添加新行时,我都会填写此数字窗格,因此这可能是导致视图前进的原因。
我想防止滚动窗格在其视图中的内容展开时滚动。任何指针?我试过谷歌搜索标题的变体,以及阅读 JScrollPane 的所有文档,但我仍然有点困惑。
编辑:在滚动窗格中,我有一个文本窗格,在它旁边我有另一个文本窗格,显示它旁边窗格的行号。每次添加新行时,我都会填写此数字窗格,因此这可能是导致视图前进的原因。
滚动或不滚动可在 DefaultCaret 上配置
DefaultCaret caret = (DefaultCaret) textPane.getCaret();
caret.setUpdatePolicy(DefaultCaret.NEVER_UPDATE);
另请参阅 Rob关于文本滚动的精彩博客条目
通常 JScrollPane 不会这样做,getViewport().getViewPosition()
当您使用以下代码放大视口时,它仍然是固定的
JScrollPane scrollPane = ...;
scrollPane.getViewport().getView().setPreferredSize(...);
scrollPane.getViewport().revalidate();
也许您的组件会发生变化,以至于您将其视为“滚动”。在这种情况下,您必须scrollPane.getViewport().setViewPosition(...)
在放大视图后调整视图位置。