JFormattedTextField устанавливает значение и текст null после ввода неправильного формата

Я работаю с Java-приложением с JFormattedTextField. У меня есть некоторые проблемы, которые:

  1. Как установить JFormattedTextField с возможностью принимать «/» и «-»

  2. Я хочу установить значение jformattedtextfield и текст в значение null или "" после ввода неправильного формата.

Пример:

2.1.JFormattedTextField ftf .... с форматом ("гггг-мм-дд")

введите здесь описание изображения

2.2. Введите правильный формат: 1990-5-6

введите здесь описание изображения

2.3. Выйти из фтф

введите здесь описание изображения

2.4. Затем сфокусируйтесь на ftf и введите неверный формат: 5-6-1990.

введите здесь описание изображения

2.5. Оставьте ftf, тогда он распознает неправильный формат, но вернет что-то другое

введите здесь описание изображения

Но я хочу, чтобы я был нулевым или пустым.

введите здесь описание изображения

Как мне это сделать?

Мы ценим любые предложения!


person suti    schedule 09.04.2014    source источник
comment
+1 хороший вопрос, да можно сбросить, ищите в моих сообщениях с тегами jformattedtextfield   -  person mKorbel    schedule 09.04.2014


Ответы (1)


Это мой первый ответ на этом форуме, и я надеюсь, что я не ошибаюсь. Для первого вопроса вы можете использовать MaskFormatter. Это также гарантирует, что значение никогда не будет введено неправильно.

new JFormattedTextField(createFormatter("####-##-##"));



private static MaskFormatter createFormatter(String s) {
    MaskFormatter formatter = null;
    try {
        formatter = new MaskFormatter(s);
        formatter.setPlaceholderCharacter('0');
    } catch (java.text.ParseException exc) {
        System.err.println("formatter is bad: " + exc.getMessage());
        System.exit(-1);
    }
    return formatter;
} 
person Aviral Bansal    schedule 03.06.2014