Я использую JScrollPane, чтобы разрешить прокрутку в JFrame, в котором есть текстовый компонент, который служит текстовым редактором. Что я хочу сделать после установки текста в этом редакторе, так это прокрутить его обратно вверх, чтобы вы могли видеть, что находится в начале файла.
Кто-нибудь знает как это сделать?
На всякий случай, если вы не используете текстовый компонент, посмотрите ветку, размещенную здесь .... Установка полосы прокрутки на JScrollPane
Их решение - отключить поток через invokeLater
final JScrollPane scroll = new JScrollPane(text); javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { scroll.getVerticalScrollBar().setValue(0); } });
источник
invokeLater
не отключает поток, он просто ставит в очередь событие, которое должно быть выполнено после текущего события (например, нажатие кнопки или что-то еще, что является контекстом кода, который вызываетinvokeLater
), и завершаются любые другие уже поставленные в очередь события.Это сделает работу:
источник
Вы можете использовать метод
setCaretPosition(0)
сразу послеsetText(String t)
текстового компонента.источник
Используйте JComponent.scrollRectToVisible ()
Если вам нужна дополнительная информация, вот статья
источник
Вы можете попробовать это:
scrollPane.getViewport().setViewPosition(new Point(0,0));
Согласно JavaDocs setViewPosition () ведет себя следующим образом:
источник
Вот как:
textArea.setSelectionStart(0); textArea.setSelectionEnd(0);
источник