Originariamente inviato da @DI3GO@
Allora, in che modo si potrebbe fare?
Prima di ogni append si può impostare la posizione del caret per metterlo al fondo oppure ottenere la scrollbar verticale dal JScrollPane e portarla al massimo possibile.

Nel primo caso:
textarea.setCaretPosition(textarea.getDocument().g etLength());

Uno svantaggio è che se c'era una selezione, sparisce.

Nel secondo caso (agire sul JScrollBar del JScrollPane), l'avevo mostrato in questo mio post.