0

Utilities.getRowStartの行数を調べるために使用していますJTextPane。しかしBadLocationException、Enterキーを押すと次のようになります。

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++;
}
4

1 に答える 1

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

あなたがWindowsで作業していると推測してください。そのコードは、改行文字ごとに「\r\n」を含む文字列を返します。ドキュメントは「\n」のみを使用するため、オフセットはドキュメントの長さよりも大きくなります。使用する:

int offset = pane.getDocument().getLength();
于 2013-03-30T15:29:23.183 に答える