DocumentListener dl = new MessageDocumentListener();
((AbstractDocument) nboxArea.getDocument()).setDocumentFilter(new DocumentFilter() {
public void insertString(FilterBypass fb, int offset, String string, AttributeSet attr) throws BadLocationException {
string = string.replaceAll("\t", "");
super.insertString(fb, offset, string,(javax.swing.text.AttributeSet) attr);
}
public void replace(FilterBypass fb, int offset, int length, String text, AttributeSet attrs) throws BadLocationException {
text = text.replaceAll("\t", "");
//TODO must do something here
super.replace(fb, offset, length, text,(javax.swing.text.AttributeSet) attrs);
}
});
JTextArea evArea = (JTextArea) c;
evArea.getDocument().removeDocumentListener(dl);
evArea.setText(originalMessage);
In diesem Fall habe ich den folgenden Fehler beim Setzen von Text in Textarea gefunden. Ich weiß nicht, wie ich ihn beheben kann.
Exception in thread "AWT-EventQueue-0"
java.lang.IllegalStateException: Attempt to mutate in notification
Ich denke, dass das Problem darin besteht, den Text im Dokument oder das Dokument im Dokumentlistener zu setzen. Aber ich weiß nicht, wie ich dieses Problem lösen kann. Bitte helfen Sie mir, dieses Problem zu lösen.