1
嗯,这可能是一个小问题,但我无法想象它。
我希望我的程序在按下Enter键时显示当前光标位置的文本。
这里是我当前的代码:获取输入密钥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键行为作为提交操作,并且脱字符号消失 - 这就是为什么你得到无效操作。第二次按Enter键时,TextArea中没有插入符号。 –
嗯,那么你有什么建议我来解决这个问题? –
您可能会保存最后一个已知的插入位置并返回该位置。或者在Enter之后(它触发一个可以在ActionListener中处理的Action),您可以将插入符号设置为原始位置。 –