使用JDK1.4.2(或更早版本)时,在论坛上可以找到的最常见建议是使用如下代码:
textArea.append(...);
textArea.setCaretPosition(textArea.getDocument().getLength());
但是,我刚刚注意到,在JDK5中,此问题实际上已通过API更改得以解决。现在,您可以通过在文本区域的DefaultCaret上设置属性来控制此行为。使用这种方法的代码将是:
JTextArea textArea = new JTextArea();
DefaultCaret caret = (DefaultCaret)textArea.getCaret();
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
注意:
上述设置插入符号更新策略的建议不起作用。
相反,您可能想查看智能滚动,该功能使用户可以确定何时应该自动进行滚动。
在文本区域中自动滚动的更详细描述可以在这里找到:文本区域滚动