2012-01-07 25 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

相關問題