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键时起作用,下次按下它时,它会抛出异常"无效位置".
有更好的方法吗?
呵呵,自己解决了:
这是我正在寻找的正确代码:
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)
也许这对那里的另一个人有用:)