javacavaj
javacavaj

Reputation: 2971

Setting Text in a JFormattedTextField

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

Answers (2)

Kelly S. French
Kelly S. French

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

Ovi Tisler
Ovi Tisler

Reputation: 6473

Take a look at the setValue() method

Try this

myTextField.setValue(new Float("555.55555"));

Upvotes: 5

Related Questions