0

Is there anyway I can set the caret position in my JTextArea where the caret position has not been before? I would like to add text to my JTextArea using KeyListener on the KeyEvent.VK_ENTER, and then set the caret position one line underneath where I add the text to the JTextArea.

Cheers,

Taylor

4

2 回答 2

3

在 KeyEvent.VK_ENTER 上使用 KeyListener

不要使用 KeyListener。Swing 被设计为与键绑定一起使用。阅读 Swing 教程中有关如何使用键绑定的部分以获取更多信息。

将插入符号位置设置在我将文本添加到 JTextArea 的下方一行。

添加文本时,请确保将“\n”附加到文本区域。然后你可以使用:

textArea.setCaretPosition( textArea.getDocument().getLength() );
于 2013-07-18T21:26:25.687 回答
1
  • 我强烈建议您不要使用 KeyListener,因为不鼓励使用低级侦听器,这会使您的代码更难升级和修改。
  • 您的最终目标是什么,因为可能有更好的方法。
  • 要添加新行,只需执行以下操作:将新行添加到 JTextArea 通过textArea.append("\n");
  • 然后通过将光标移动到 JTextArea 的末尾setCaretPosition(...)
于 2013-07-18T21:25:50.430 回答