Reputation: 2971
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");
Upvotes: 5
Views: 4455
Reputation: 12344
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.
Upvotes: 4
Reputation: 6473
Take a look at the setValue() method
Try this
myTextField.setValue(new Float("555.55555"));
Upvotes: 5