我想防止滚动面板在其视图中的内容展开时滚动。指针吗?我试着在谷歌上搜索了这个标题的各种变体,并阅读了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(...)
调整视图位置。