java.lang.IllegalStateException beim Verwenden des Dokumenten-Listeners in TextArea, Java

8
%Vor%

In diesem Fall habe ich beim Setzen von Text im Textfeld den folgenden Fehler gefunden. Ich weiß nicht, wie ich es lösen soll.

%Vor%

Ich denke, das Problem besteht darin, Text im Dokument oder Dokument im Listener zu setzen. Aber ich weiß nicht, wie ich das lösen soll. Bitte helfen Sie mir, dieses Problem zu lösen.

    
Sunil Kumar Sahoo 07.05.2010, 13:16
quelle

2 Antworten

9

Sie können das Dokument im DocumentListener nicht ändern. Schreiben Sie stattdessen ein benutzerdefiniertes Dokument, das die Methoden insertString () oder remove () überschreibt.

Aus Java-Lernprogrammen: So schreiben Sie einen DocumentListener

  

Dokument-Listener sollten den Inhalt des Dokuments nicht ändern; Die Änderung ist bereits abgeschlossen, wenn der Listener über die Änderung informiert wird. Schreiben Sie stattdessen ein benutzerdefiniertes Dokument, das den insertString überschreibt oder Methoden entfernt, oder beides. Weitere Informationen finden Sie unter Auf Änderungen in einem Dokument warten .

    
Chadwick 07.05.2010, 14:31
quelle
3

Wenn Sie im Listener mutieren möchten, können Sie später einen separaten Thread mit SwingUtilities.invokeLater starten. Seien Sie vorsichtig, da die Änderungen aus dem separaten Thread den Listener erneut aufrufen, also vor dem Start des Threads einen Booleschen Wert setzen, sofort vom Listener zurückkehren und ihn zurücksetzen, nachdem die Änderungen im separaten Thread durchgeführt wurden.

>     
Derek 08.10.2014 14:06
quelle

Tags und Links