有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在回车键上获取JTextArea当前行文本

嗯,这可能是个小问题,但我想不出来
当我按下回车键时,我希望我的程序在当前光标位置显示文本
以下是我当前的代码:

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键时起作用,下一次按下它时,它会抛出一个异常“无效位置”
有更好的方法吗


共 (1) 个答案

  1. # 1 楼答案

    呵呵,我自己解决了:

    以下是我要查找的正确代码:

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

    也许这对外面的另一个人有用:)