使用 JEditorPane,有没有办法判断插入符号当前是否在最后一行?我在 API 中找不到任何东西,或者更重要的是,在派生 JEditorPane 的 JTextComponent 中找不到任何东西。当用户使用向下箭头键向下移动文本时,我需要找出这一点。我目前的想法是这样的:
private boolean isEndOfText() {
int tmpCurrent = editor.getCaretPosition();
editor.getActionMap().get(DefaultEditorKit.endLineAction).actionPerformed(null);
int tmpEnd = editor.getCaretPosition();
try { editor.setCaretPosition(tmpEnd + 1); } catch (Exception e) { editor.setCaretPosition(tmpCurrent); return true; }
editor.setCaretPosition(tmpCurrent);
return false;
}
此代码将在按下向下键时运行,并通过检测是否发生错误来返回它是否实际上是文本的结尾,如果插入符号被放在最后可能的位置(即行尾)之后(如果它实际上是最后一行)否则意味着尚未到达文本的结尾。