From the Swing tutorial on text components:
You may want to change the document's text within a document listener. However, you should never modify the contents of a text component from within a document listener. If you do, the program will likely deadlock. Instead, you can use a formatted text field or provide a document filter.
I am confused. So what is the correct way to change the text eg. as a result of a KeyEvent ?