部分摘自Oracle的How to use text areas tutorial.

全文见此:http://docs.oracle.com/javase/tutorial/uiswing/components/textarea.html


具体思路是:当有新内容append到text area控件中后,设置光标位置到text area控件内容的最后一行,即实现了将text area控件的viewport滚动到内容的最底部。


具体代码如下:

jTextArea.append(msg + "\r\n");
jTextArea.setCaretPosition(txaLogShow.getDocument().getLength());

值得一提的是:

除非用户使用鼠标或拖拽方式重新在JTextArea中的内容上定位了插入光标,如果JTextArea设置了autoscroll,那么当JTextArea.append(...)方法调用后,JTextArea控件会自定将刚刚append的内容显示出来,也即不用费力的去scroll to bottom操作。