如何到达TextArea的末尾

Moh*_*sal 5 java swing jscrollpane jtextarea

可能重复:
如何在Java GUI中设置JTextArea的AUTO-SCROLLING?

我创建在用户输入文本的应用程序TextField从该文本被附加到TextArea的actionPerformed.
TextArea是一个加JScrollPane.当声明列的行数出来时,用户可以滚动查看文本.但是当他输入一些文本到TextAreavia 时,他需要每次滚动,TextField因为附加到的最后一行TextArea不会自动滚动到最后一行.
任何人都可以帮我在那里如何自动或当actionPerformed,TextArea将滚动到最后?

kle*_*tra 5

魔法驻留在DefaultCaret.updatePolicy中:

DefaultCaret caret = (DefaultCaret)textArea.getCaret();
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅Rob的博客文章


fir*_*w52 3

尝试这个:

jTextArea.selectAll();
int last = jTextArea.getSelectionEnd();
jTextArea.select(last, last);
Run Code Online (Sandbox Code Playgroud)

哪里jTextArea是对您的 TextArea 的引用。

但是,如果有大量文本,前面的示例可能会非常慢,因此我提供了另一种方法来执行此操作:

jTextArea.setCaretPosition(jTextArea.getDocument().getLength());
Run Code Online (Sandbox Code Playgroud)

编辑:在互联网上浏览替代解决方案并阅读类似问题的答案后,我意识到@kleopatra 的解决方案更有效。但是,接受您认为合适的任何答案完全是您的特权(我看到您已经接受了我的答案)。

@kleopatra 我投票给你来补偿。:)