Java Swing – 使用JScrollPane并使其滚动回顶部

我正在使用JScrollPane允许在具有用作文本编辑器的文本组件的JFrame中滚动。 在这个编辑器中设置文本之后,我想要做的就是将它滚动回顶部,这样就可以看到文件的开头是什么。

有谁知道如何做到这一点?

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

以防万一你不使用文本组件看看在这里发布的线程…. 在JScrollPane上设置滚动条

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

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

这将使工作:

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

使用JComponent.scrollRectToVisible()

如果你需要更多的信息, 这里有一篇文章

您可以在文本组件的setText(String t)之后使用setCaretPosition(0)方法。

你可以试试这个:

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

根据JavaDocs setViewPosition()的行为是这样的:

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