У меня проблема с форматированием десятичного числа валюты в TextField
. Я установил TextFormatter
с классом DecimalFormatter
, который расширяет StringConverter
, который преобразует BigDecimal
в String
и наоборот. Когда я должен изменить значение, если удалить все данные и вставить новое завершенное значение, это работает, но если мне нужно добавить / изменить часть значения, например, 13.00 в 13.10, изменение не применяется и повторно предлагает старое значение 13.00. .
Как я могу это решить?
Спасибо
public class DecimalFormatter extends StringConverter<BigDecimal> {
private NumberFormat numberFormat;
....
@Override
public String toString(BigDecimal value) {
if ( value == null )
value = new BigDecimal();
return numberFormat.format(value.doubleValue());
}
@Override
public BigDecimal fromString(String value) {
return new BigDecimal(value);
}
}
....
tfDecimal.setTextFormatter(new DecimalFormatter());