请告诉我这段代码有什么问题
int docLength = textArea.getDocument().getLength();
int lineCount = (docLength == 0) ? 1 : 0;
try {
int offset = docLength;
while (offset > 0) {
offset = Utilities.getRowStart(textArea, offset) - 1;
lineCount++;
num += lineCount;
}
System.out.println(lineCount);
} catch (BadLocationException e) {
e.printStackTrace();
}
我收到此错误:
javax.swing.text.BadLocationException:未表示的位置 图
错误出现在以下代码行中:
offset = Utilities.getRowStart(textArea, offset) - 1;
答案 0 :(得分:0)
您添加了一个标记,说明此问题与JTextPane有关,但您将变量称为textArea
。始终如一。如果它对简单的不一致非常困惑。答案可能会有所不同,具体取决于您实际使用的是JTextPane还是JTextArea。
我不知道你为什么会收到错误,因为你没有发布证明问题的正确SSCCE。
如果您尝试确定文本窗格中的文本行数,则可以使用Text Utilities中的getLines()
方法。
答案 1 :(得分:0)
如果您有例如,可能会发生这种情况HTMLDocument
,文档包含<head>
部分。该部分在模型中具有表示,因此文档中存在Element
和适当的偏移量,但<head>
Element
没有View
(可见的重复),因此无法找到元素偏移的可见行开始