Вы можете вызвать setFormatterFactory (JFormattedTextField.AbstractFormatterFactory) для вашего объекта.
Вы можете использовать его следующим образом:
// Define the number factory.
NumberFormat nf = NumberFormat.getIntegerInstance(); // Specify specific format here.
NumberFormatter nff = new NumberFormatter(nf);
DefaultFormatterFactory factory = new DefaultFormatterFactory(nff);
// Define the decimal factory.
DecimalFormat df = new DecimalFormat(); // And here..
NumberFormatter dnff = new NumberFormatter(df);
DefaultFormatterFactory factory2 = new DefaultFormatterFactory(dnff);
// Then you set which factory to use.
JFormattedTextField field = new JFormattedTextField();
field.setFormatterFactory(factory);
//field.setFormatterFactory(factory2);
Так что просто установите фабрикукогда происходит ваше событие.
Обратите внимание, что конструктор DefaultFormatterFactory
может принимать несколько форматеров;по умолчанию, формат отображения, когда у него нет фокуса, формат редактирования, когда у него есть фокус, и нулевой формат, когда у поля есть нулевое значение.