代码之家  ›  专栏  ›  技术社区  ›  Elliott

在jeditor窗格中设置插入符号会导致异常

  •  0
  • Elliott  · 技术社区  · 16 年前

    我有一个jeditorpane,它有一些HTML格式的文本。当我执行以下命令时

    int len=editorpane.getText().length();

    len的值是7473。但我尝试做以下工作:

    editorpane.setcaretposition(4995);

    我得到以下异常:java.lang.illegalargumentException:bad position:4995

    我的理解是,只有当我试图设置插入符号的位置小于0或大于文本长度时,我才应该得到这个异常。两者都不是。怎么会这样呢?

    谢谢您,

    埃利奥特

    2 回复  |  直到 16 年前
        1
  •  1
  •   camickr    16 年前
    int len = editorPane.getText().length();
    

    给出文本和标记的长度。

    尝试使用:

    int len = editorPane.getDocument().getLength();
    

    它只提供文档中文本的长度。

        2
  •  0
  •   Manuel Darveau    16 年前

    我认为问题在于文本不仅包含可渲染字符(文本中有HTML标记)。我想setCaretPosition希望得到可见的文本位置。

    例如,如果 text = "<b>123</b>" 你打电话给我 editorPane.setCaretPosition(2) ,我认为插入符号将介于“2”和“3”之间;