Java Swing - Использование JScrollPane и прокрутка его вверх - PullRequest
73 голосов
/ 14 ноября 2008

Я использую JScrollPane, чтобы разрешить прокрутку в JFrame, который имеет текстовый компонент, который служит в качестве текстового редактора. После установки текста в этом редакторе я хочу сделать прокрутку вверх, чтобы вы могли видеть, что находится в начале файла.

Кто-нибудь знает, как это сделать?

Ответы [ 7 ]

122 голосов
/ 15 ноября 2008

Вызов setCaretPosition (0) для вашего текстового компонента приведет к его прокрутке до вершины.

34 голосов
/ 23 августа 2010

На всякий случай, если вы не используете текстовый компонент, взгляните на опубликованную здесь ветку .... Настройка полосы прокрутки на JScrollPane

Их решение - раскрутить поток через invokeLater

final JScrollPane scroll = new JScrollPane(text);
javax.swing.SwingUtilities.invokeLater(new Runnable() {
   public void run() { 
       scroll.getVerticalScrollBar().setValue(0);
   }
});
10 голосов
/ 23 января 2013

Это сделает работу:

DefaultCaret caret = (DefaultCaret) textArea.getCaret();
caret.setUpdatePolicy(DefaultCaret.NEVER_UPDATE);
7 голосов
/ 29 августа 2015

Вы можете использовать метод setCaretPosition(0) сразу после setText(String t) вашего текстового компонента.

7 голосов
/ 14 ноября 2008

Использовать JComponent.scrollRectToVisible ()

Если вам нужна дополнительная информация, вот статья

6 голосов
/ 15 ноября 2008

Вы можете попробовать это:

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

Согласно JavaDocs setViewPosition () ведет себя так:

Устанавливает координаты вида, которые появляются в верхнем левом углу окна просмотра, ничего не делает, если вид отсутствует.

1 голос
/ 13 апреля 2018

Вот как:

textArea.setSelectionStart(0);
textArea.setSelectionEnd(0); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...