我正在使用JScrollPane来允许在具有文本组件的JFrame中滚动,该文本组件用作文本编辑器.在我在此编辑器中设置文本后,我想要做的是将其向上滚动到顶部,这样您就可以看到文件开头的内容.
有谁知道如何做到这一点?
在文本组件上调用setCaretPosition(0)将使其滚动到顶部.
如果您不使用文本组件,请查看此处发布的主题.... 在JScrollPane上设置滚动条
他们的解决方案是通过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);
您可以setCaretPosition(0)
在setText(String t)
文本组件之后使用该方法.
使用JComponent.scrollRectToVisible()
如果您需要更多信息,请参阅此文章
你可以试试这个:
scrollPane.getViewport().setViewPosition(new Point(0,0));
根据JavaDocs,setViewPosition()的行为如下:
设置显示在视口左上角的视图坐标,如果没有视图则不执行任何操作.