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