使用Utilities.getRowStart时出现BadLocationException按Enter键

时间:2013-03-30 14:45:13

标签: java swing jtextpane

我正在使用Utilities.getRowStart来查找JTextPane中的行数。但是当我按下回车键时它会给出BadLocationException

  

javax.swing.text.BadLocationException:未表示的位置   查看

有什么想法吗?

int offset = pane.getText().length();

while(offset > 0) {

    try {

    offset = Utilities.getRowStart(pane, offset) - 1;

        } catch (BadLocationException e1) {
      // TODO Auto-generated catch block
      e1.printStackTrace();

    }
    lineCount++;
}

1 个答案:

答案 0 :(得分:6)

int offset = pane.getText().length();

只是猜测你正在使用Windows。该代码将为每个换行符返回一个包含“\ r \ n”的字符串。文档仅使用“\ n”,因此您的偏移量将大于文档的长度。使用:

int offset = pane.getDocument().getLength();