当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《JavaSwing-使用JScrollPane并将其滚动回顶部》经验,为你挑选了6个好方法。

我正在使用JScrollPane来允许在具有文本组件的JFrame中滚动,该文本组件用作文本编辑器.在我在此编辑器中设置文本后,我想要做的是将其向上滚动到顶部,这样您就可以看到文件开头的内容.

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



1> 小智..:

在文本组件上调用setCaretPosition(0)将使其滚动到顶部.



2> 小智..:

如果您不使用文本组件,请查看此处发布的主题.... 在JScrollPane上设置滚动条

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

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


`invokeLater`不会剥离线程,它只是使一个事件在当前事件之后排队(例如,单击按钮或调用`invokeLater`的代码的上下文是什么),并且任何其他已经排队的事件完成。

3> 小智..:

这将使工作:

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



4> 小智..:

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



5> ykaganovich..:

使用JComponent.scrollRectToVisible()

如果您需要更多信息,请参阅此文章



6> Vincent Ramd..:

你可以试试这个:

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

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

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


这对我来说不起作用 - ScrollPane跳到顶部,然后立即再次下降到底部.
推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有