2010-12-27 3 views

ответ

9

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

textArea.setCaretPosition(textArea.getDocument().getLength()); 
2

Если вы прокрутите до середины страницы, где он говорит о политике, вы должны найти что вы пытаетесь достичь:

4

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

2

Как только Amjad Masad уже said, вам необходимо установить позицию каретки на последнюю позицию документа после вставки текста.

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

+0

Отличный пункт. Хороший способ сделать это. – Core

0

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

Смежные вопросы