在Enter Key上获取JTextArea当前行文本

A-S*_*-SM 2 java swing document caret jtextarea

嗯,这可能是一个小问题,但我无法理解.
当我按下Enter键时,我希望我的程序在当前光标位置显示文本.
这是我目前的代码:

if (evt.getKeyCode() == 10) {
  try {
    int offset=ta.getLineOfOffset(ta.getCaretPosition());
    int start=ta.getLineStartOffset(offset);
    int end=ta.getLineEndOffset(offset);

    System.out.println("ext: "+ta.getText(start, end));

  } catch (BadLocationException ex) {
    System.out.println(ex.getMessage());
  }
}  
Run Code Online (Sandbox Code Playgroud)

它仅在我第一次按下Enter键时起作用,下次按下它时,它会抛出异常"无效位置".
有更好的方法吗?

A-S*_*-SM 6

呵呵,自己解决了:

这是我正在寻找的正确代码:

if (evt.getKeyCode() == 10) {
  try {
    int offset=ta.getLineOfOffset(ta.getCaretPosition());
    int start=ta.getLineStartOffset(offset);
    int end=ta.getLineEndOffset(offset);

    System.out.println("Text: "+ta.getText(start, (end-start)));                
  } catch (BadLocationException ex) {
    System.out.println(ex.getMessage());
  }
}
Run Code Online (Sandbox Code Playgroud)

也许这对那里的另一个人有用:)