ScrollPane прокрутить до нижней проблемы - PullRequest
3 голосов
/ 27 декабря 2010

У меня есть TextArea в моем приложении Java, и я добавляю много строк текста. Мне нужно ScrollPane, чтобы прокрутить до последнего добавленного (в нижней части TextArea). Как я могу это сделать?

Ответы [ 5 ]

9 голосов
/ 27 декабря 2010

Вы можете сделать это, переместив позицию каретки вниз, это автоматически прокрутит TextArea:

textArea.setCaretPosition(textArea.getDocument().getLength());
4 голосов
/ 27 декабря 2010

Прокрутка текстовой области объясняет, как работает прокрутка, более подробно и предлагает альтернативное решение, которое может быть проще.

2 голосов
/ 27 декабря 2010

Как уже сказал Амджад Масад , вам нужно установить позицию каретки на последнюю позицию документа после вставки текста.

Я хочу добавить следующее примечание: если вы используетеJTextArea как некоторый вид выходного журнала (AKA, рабочий поток заполняет его непрерывно), я только установил бы позицию каретки в конце документа, если текущая позиция каретки уже находится в конце (до вставки).Это позволяет пользователю щелкнуть где-нибудь внутри текста и прочитать его без автоматического прокрутки приложения вниз.Если пользователь хочет увидеть самое новое и лучшее, что ж, тогда он (и) должен нажать Ctrl + Down, чтобы поместить курсор в конец документа.

2 голосов
/ 27 декабря 2010

Если вы прокрутите до середины страницы, где говорится о политике, вы должны найти то, чего пытаетесь достичь: http://download.oracle.com/javase/tutorial/uiswing/components/scrollpane.html

0 голосов
/ 29 августа 2011

Вы должны проверить, если вы находитесь на EDT, когда вы звоните в приложение.Если вы находитесь за пределами EDT при вызове append, JTextArea не прокручивает до последней добавленной строки (см. Мой пост с примером для запуска: JScrollPane прокручивает последнюю добавленную строку ).

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