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 ?
1) using
DocumentListenerforoutput from
JTextComponentto the GUIHightLighterorStyled text2)
DocumentFilterfor filtering ofunwanted chars,
chars sequence(s),
these filtered chars could be
replaced with another char (or with defined chars sequence)
removed (never will be displayed in the
JTextComponent)3) similair funcionality to provide
JFormattedTextFieldis possible to input to theJTextComponentonly chars0 - 9,decimal separator,negative sing,4)
So what is the correct way to change the text eg. as a result of a KeyEvent ?
use DocumentFilter