JFormattedTextField отображает запятые и принимает десятичные точки - PullRequest
0 голосов
/ 25 ноября 2018

Я использую для JFormattedTextField для ввода чисел с десятичными точками.Ниже приведен форматтер.

public static AbstractFormatterFactory createFormatter() {
    final NumberFormat format = NumberFormat.getInstance();
    final InternationalFormatter formatter = new InternationalFormatter(format);
    formatter.setValueClass(Double.class);
    formatter.setAllowsInvalid(false);
    formatter.setOverwriteMode(true);
    formatter.setCommitsOnValidEdit(true);
    return new DefaultFormatterFactory(formatter, formatter, formatter);
}

При setAllowsInvalid(false) точки игнорируются, но запятые добавляются каждые 3 цифры по желанию.При setAllowsInvalid(true) периоды принимаются, но запятые не отображаются, пока фокус не изменится.

Есть ли способ иметь оба поведения?

1 Ответ

0 голосов
/ 16 декабря 2018

Я считаю, что JFormattedTextField предназначен для форматирования по-разному при редактировании и отображении, и это было корнем моей проблемы.Я нашел очень хорошую, если не старую, статью об использовании JFormattedTextField, в которой все хорошо собрано.http://www.drdobbs.com/jvm/java-better-interfaces-via-jformattedtex/224700979

...