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

use*_*001 0 java swing jtextpane

Utilities.getRowStart用来找出a中的行数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++;
}
Run Code Online (Sandbox Code Playgroud)

cam*_*ckr 6

int offset = pane.getText().length();
Run Code Online (Sandbox Code Playgroud)

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

int offset = pane.getDocument().getLength();
Run Code Online (Sandbox Code Playgroud)