3

好吧,这也许是一个小问题,但我想不通。
当我按下 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());
  }
}  

它仅在我第一次按下 Enter 键时起作用,下次按下它时,它会引发异常“Invalid Location”。
有没有更好的方法来做到这一点?

4

1 回答 1

8

呵呵,自己解决了:

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

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());
  }
}

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

于 2013-06-04T15:57:48.383 回答