Как ограничить ввод пользователя 6 цифрами в jtextfield?

У меня есть jtextfield textFoo, в котором я хочу, чтобы пользовательский ввод. Я хочу разрешить вводить только числа, и он должен быть длиной 6 символов. Я пробовал приведенный ниже код, но в нем часто уже написаны пустые символы, и я должен удалить их перед записью. Текстовое поле textFoo также удаляет числа, когда теряет фокус, почему оно это делает? И как избавиться от этих пустых символов в начале? Или есть лучший способ ограничить ввод пользователя 6 цифрами?

textFoo = new JFormattedTextField(createFormatter("######"));
textFoo.setBounds(92, 29, 86, 20);
textFoo.setVisible(true);
add(textFoo);

....    

private MaskFormatter createFormatter(String s) {
MaskFormatter formatter = null;
try {
    formatter = new MaskFormatter(s);
} catch (java.text.ParseException exc) {
    System.err.println("fooText :" + exc.getMessage());
}
return formatter;
}

person Majlena    schedule 14.03.2016    source источник
comment
DocumentFilter, DocumentFilter, DocumentFilter, см. Реализация фильтра документов и примеры DocumentFilter для более подробной информации.   -  person MadProgrammer    schedule 14.03.2016
comment
@Prashant Использование пользовательского Document больше не является (начиная с Java 1.4) лучшим решением этой проблемы, хотя где-то среди одного из ответов указано, что это не самый популярный ответ, вместо этого вы должны использовать DocumentFilter   -  person MadProgrammer    schedule 14.03.2016