Вам нужно будет вручную отрегулировать положение области просмотра.Таким образом, вы можете создать метод append (...) с кодом, похожим на:
public void append(JTextArea textArea, String text)
{
textArea.append( text );
Component parent = textArea.getParent();
if (parent instanceof JViewport)
{
JViewport viewport = (JViewport)parent;
Point p = viewport.getViewPosition();
if (p.x != 0)
{
p.x = 0;
viewport.setViewPosition( p );
}
}
}
Или вместо изменения позиции просмотра вы можете сбросить каретку в начало строки, что должно привести к тому, что область просмотра будетсброс влево автоматически:
textArea.append( text );
textArea.setCaretPosition( Utilities.getRowStart(textArea, textArea.getCaretPosition() );