设置插入符号位置,而插入符号位于JTextArea中

时间:2013-07-18 21:21:57

标签: java swing jtextarea keylistener caret

无论如何,我可以在我的JTextArea中设置插入位置以前没有插入位置吗?我想在KeyEvent.VK_ENTER上使用KeyListener将文本添加到我的JTextArea,然后将插入位置设置在我将文本添加到JTextArea的下面一行。

干杯,

泰勒

2 个答案:

答案 0 :(得分:3)

  

在KeyEvent.VK_ENTER上使用KeyListener

不要使用KeyListener。 Swing旨在与Key Bindings一起使用。有关详细信息,请阅读How to Use Key Bindings上的Swing教程中的部分。

  

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

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

textArea.setCaretPosition( textArea.getDocument().getLength() );

答案 1 :(得分:1)

  • 我强烈建议您不要使用KeyListener,因为不鼓励使用低级侦听器,这会使您的代码更难以升级和修改。
  • 你的最终目标是什么,因为可能有更好的方式。
  • 要添加新行,只需执行此操作:通过textArea.append("\n");
  • 向JTextArea添加新行
  • 然后通过setCaretPosition(...)
  • 将光标前进到JTextArea的末尾