我正在使用JScrollPane允许在JFrame中滚动,该JFrame具有用作文本编辑器的文本组件。在此编辑器中设置文本后,我想做的是将其向上滚动回到顶部,这样您就可以看到文件开头的内容。
有谁知道如何做到这一点?
我正在使用JScrollPane允许在JFrame中滚动,该JFrame具有用作文本编辑器的文本组件。在此编辑器中设置文本后,我想做的是将其向上滚动回到顶部,这样您就可以看到文件开头的内容。
有谁知道如何做到这一点?
Answers:
在文本组件上调用setCaretPosition(0)会使它滚动到顶部。
以防万一您不使用文本组件,请看一下这里发布的线程...。在JScrollPane上设置滚动条
他们的解决方案是通过invokeLater剥离线程
final JScrollPane scroll = new JScrollPane(text);
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
scroll.getVerticalScrollBar().setValue(0);
}
});
invokeLater
不会剥离线程,它只是让一个要invokeLater
排队的事件在当前事件之后执行(例如,单击按钮,或者调用的代码上下文是什么),以及任何其他已经排队的事件完成。
使用JComponent.scrollRectToVisible()
如果您需要更多信息,这是一篇文章
您可以尝试以下方法:
scrollPane.getViewport().setViewPosition(new Point(0,0));
根据JavaDocs,setViewPosition()的行为如下:
设置显示在视口左上角的视图坐标,如果没有视图则不执行任何操作。