Moh*_*sal 5 java swing jscrollpane jtextarea
我创建在用户输入文本的应用程序TextField从该文本被附加到TextArea时的actionPerformed.
将TextArea是一个加JScrollPane.当声明列的行数出来时,用户可以滚动查看文本.但是当他输入一些文本到TextAreavia 时,他需要每次滚动,TextField因为附加到的最后一行TextArea不会自动滚动到最后一行.
任何人都可以帮我在那里如何自动或当actionPerformed,TextArea将滚动到最后?
魔法驻留在DefaultCaret.updatePolicy中:
DefaultCaret caret = (DefaultCaret)textArea.getCaret();
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅Rob的博客文章
尝试这个:
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 我投票给你来补偿。:)