Java JScrollPane перестает прокручиваться после щелчка по нему

У меня есть JTextArea внутри JScrollPane, и Caret Update работает нормально.

DefaultCaret caret = (DefaultCaret)jTextArea1.getCaret();
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);

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

введите здесь описание изображения

Как видите, вертикальная полоса прокрутки находится не внизу. Расстояние до нижнего угла TextPane увеличивается, но область просмотра по-прежнему придерживается его позиции. Тем временем я переключился на JTextPane из-за поддержки HTML, но все еще сталкиваюсь с той же проблемой.

Надеюсь, вы меня понимаете, приветствую.


person BrainWorx    schedule 28.04.2016    source источник


Ответы (1)


Когда вы нажимаете на JTextArea, вы устанавливаете позицию каретки в этой точке. Каретка всегда пытается сделать себя видимой, поэтому текстовая область перестает прокручиваться, если вы позже добавите текст не в каретку. Поэтому, когда вы добавляете текст, вам также нужно вызвать textarea.setCaretPosition(whereever_you_want_it_to_be).

person FredK    schedule 28.04.2016