I'm using the code snippet below to create a JFormattedTextField. When entering values via the GUI text field the formatting works as expected. However, when I programmatically set the value the formatting does not occur. How can I force this to occur?
JFormattedTextField myTextField = new JFormattedTextField(new DecimalFormat("#0.###"));
// Formatting Does Not Occur
myTextField.setText("555.55555");
Take a look at the setValue() method
Try this
myTextField.setValue(new Float("555.55555"));
To add to OTisler's answer:
From the Javadoc for JFormattedTextField.setText()
Note that text is not a bound property, so no PropertyChangeEvent is fired when it changes. To listen for changes to the text, use DocumentListener.
From the Javadoc for JFormattedTextField.setValue()
Sets the value that will be formatted by an AbstractFormatter obtained from the current AbstractFormatterFactory.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With