Java Swing - 使用 JScrollPane 并让它滚动回顶部

问题描述 投票:0回答:7

我使用 JScrollPane 允许在具有充当文本编辑器的文本组件的 JFrame 中滚动。 在此编辑器中设置文本后,我想做的就是让它滚动回到顶部,这样您就可以看到文件开头的内容。

有人知道该怎么做吗?

java swing
7个回答
152
投票

在文本组件上调用 setCaretPosition(0) 将导致其滚动到顶部。


44
投票

以防万一您不使用文本组件,请查看此处发布的线程... 在 JScrollPane 上设置滚动条

他们的解决方案是通过invokeLater 分离一个线程

final JScrollPane scroll = new JScrollPane(text);
javax.swing.SwingUtilities.invokeLater(new Runnable() {
   public void run() { 
       scroll.getVerticalScrollBar().setValue(0);
   }
});

11
投票

你可以试试这个:

 scrollPane.getViewport().setViewPosition(new Point(0,0));

根据 JavaDocs setViewPosition() 的行为如下:

设置出现在视口左上角的视图坐标,如果没有视图则不执行任何操作。


10
投票

这将使工作:

DefaultCaret caret = (DefaultCaret) textArea.getCaret();
caret.setUpdatePolicy(DefaultCaret.NEVER_UPDATE);

9
投票

您可以在文本组件的

setCaretPosition(0)
之后使用方法
setText(String t)


6
投票

使用 JComponent.scrollRectToVisible()

如果您需要更多信息,这里有一篇文章(WayBack Machine 链接——原始文章似乎已经消失)


3
投票

具体方法如下:

textArea.setSelectionStart(0);
textArea.setSelectionEnd(0); 
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.