2016-04-28 3 views
1

У меня есть JTextArea внутри JScrollPane, и обновление Caret просто отлично работает.Java JScrollPane остановить прокрутку после нажатия на нее

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

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

enter image description here

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

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

ответ

1

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