2012-01-07 62 views
0

我正在写一个vt100模拟器,并且我正在使用带有DefaultStyledDocument的JTextPane来显示格式化文本。现在我想实现退格,所以我需要能够删除最后一个字符。从JTextPane中删除最后一个字符

我试过如下:

doc.remove(doc.getEndPosition().getOffset()-1, doc.getEndPosition().getOffset()); 

但我不断收到一个 'javax.swing.text.BadLocationException:无效删除'

应该如何进行?

+0

为了充分阐明和展示您的问题,请考虑创建并发布一个小型可编译和可运行的程序,以证明我们的问题,即[SSCCE](http://SSCCE.org)。 – 2012-01-07 20:11:42

回答

2

您使用的API错误。最后一个参数是要删除的字符数,在你的情况下应该是1.

这里是针对Document.remove(int, int)的API。

+0

谢谢你的回答,我错误地理解了javadoc。我仍然对如何让它工作感到困惑。有了这个声明:doc.remove(doc.getLength() - 2,1);我只能删除一个角色。 – 2012-01-07 20:23:19

+0

该声明删除了一个字符。你是否说如果再次调用它不起作用? – Paul 2012-01-07 20:27:34

+0

我找到了正确的位置。最后一个字符可以通过doc.remove(doc.getLength() - 2,2);来移除。 – 2012-01-07 20:29:47

相关问题