У меня есть 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;
}
DocumentFilter
,DocumentFilter
,DocumentFilter
, см. Реализация фильтра документов и примеры DocumentFilter для более подробной информации. - person MadProgrammer   schedule 14.03.2016Document
больше не является (начиная с Java 1.4) лучшим решением этой проблемы, хотя где-то среди одного из ответов указано, что это не самый популярный ответ, вместо этого вы должны использоватьDocumentFilter
- person MadProgrammer   schedule 14.03.2016