2009-12-02 2 views
4

Ниже я использую фрагмент кода для создания JFormattedTextField. При вводе значений через текстовое поле GUI форматирование работает, как ожидалось. Однако, когда я программно устанавливаю значение, форматирование не происходит. Как я могу заставить это произойти?Настройка текста в JFormattedTextField

JFormattedTextField myTextField = new JFormattedTextField(new DecimalFormat("#0.###")); 
// Formatting Does Not Occur 
myTextField.setText("555.55555"); 

ответ

5

Посмотрите на метод SetValue()

Попробуйте

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

Чтобы добавить OTisler's answer:

Из Javadoc для JFormattedTextField.setText()

Обратите внимание, что te xt не является обязательным свойством , поэтому PropertyChangeEvent не имеет значения , когда он изменяется. Для прослушивания изменений в тексте, используйте DocumentListener.

Из Javadoc для JFormattedTextField.setValue()

Устанавливает значение, которое будет отформатированный посредством AbstractFormatter, полученного из тока AbstractFormatterFactory.

Смежные вопросы