У меня есть такой простой код, который создает JFormattedTextField, который должен содержать дату рождения (только цифры, разделенные дефисом):JFormattedTextField с начальным значением, которое может быть перезаписана знак знаком
MaskFormatter mf = new MaskFormatter("##-##-####");
mf.setPlaceholderCharacter('_');
JFormattedTextField birthDate = new JFormattedTextField(mf);
Но как создать birthDate
в порядке он будет содержать начальное значение «dd-mm-yyyy».
Я знаю, что есть такая вещь, как setPlaceholder("some string")
, но когда я ее использую, только способ изменить значение birthDate
- это выбрать весь существующий контент, а затем ввести новый.
Мое намерение - разрешить пользователю перезаписывать существующий знак контента по знаку, и если после потери фокуса это значение не разрешено, вернитесь к первоначальному. Например.
1d-мм-гггг
11-мм-гггг
11-0m-гггг (теперь BirthDate теряет фокус)
дд-мм-гггг (потому что значение неверно BirthDate как на начала)
Возможно ли такое поведение JFormattedTextField? Или, может быть, для этого есть еще один подходящий JComponent?
Возможно, для этого есть еще один подходящий JComponent? - JSpinner – mKorbel
Или, может быть, для этого есть еще один подходящий JComponent? - [JCalendar by Kai Toedter] (http://toedter.com/jcalendar/) – mKorbel
неплохой код, отличный форматтер, требуется/требуется адаптировать [NumberFormatter to Date] (http://stackoverflow.com/a/ 13424140/714968) by @Robin – mKorbel