java - 当按下 Enter 键时使用 Utilities.getRowStart 时出现 BadLocationException

标签 java swing jtextpane

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

javax.swing.text.BadLocationException: Position not represented by view

有什么想法吗?

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

最佳答案

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

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

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

关于java - 当按下 Enter 键时使用 Utilities.getRowStart 时出现 BadLocationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15719770/

相关文章:

java - 我怎样才能跟踪这个高分

Java JComboBox 不显示

java - 如何在与 JTextPane 关联的 StyledDocument 中使用 onmouseover

java - 在类型 "rf"中找不到名为 "mp3_organizer"的方法的适用重载

java - 从命令行运行 Junit (Mac)

java - 为什么我的 KeyListener 什么都不做?

java - 如何获取 JFrame/JPanel 之外的 Canvas 上的点的位置?

java - Java/Swing 中的高级 RTFEditorKit

Java Print API - 使用等宽 'Courier New' 字体错误打印空格字符

java - 如何更改 jasper jar 文件中的类