嗯,这可能是一个小问题,但我无法理解 当我按下回车键时,我希望我的程序在当前光标位置显示文本 这是我目前的代码:
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());
}
}
它仅在我第一次按下回车键时起作用,下次按下它时,它会抛出异常“无效位置”。
有没有更好的方法呢?
答案 0 :(得分:5)
以下是我正在寻找的正确代码:
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());
}
}
也许这对那里的另一个人有用:)