Java JFormattedTextField для ввода дат
-
09-06-2019 - |
Вопрос
У меня возникли проблемы с созданием JFormattedTextField для использования дат в формате дд/ММ/гггг.В частности, когда пользователь печатает, курсор должен «перепрыгивать» косую черту и переходить непосредственно к следующей числовой позиции.
Кроме того, JFormattedTextField должен проверить, действительна ли введенная дата, и каким-то образом отклонить ее, если дата недействительна, или «исправить ее» до действительной даты, например, если пользователь вводит «13» в качестве месяца, устанавливает ее как «01». " и добавьте +1 к году.
Я попробовал использовать маску ("##/##/####") с методом validate() JFormattedTextField, чтобы проверить, действительна ли дата, но оказалось, что эти два не работают вместе (или я Я слишком зелен в Java, чтобы знать, как...:), и тогда пользователь сможет ввести в поле что угодно.
Любая помощь действительно ценится!Спасибо!
Решение
Возможно, вам придется использовать обычный JTextField и вызвать setDocument() с пользовательским документом.Я рекомендую расширить PlainDocument, это позволит легко проверять вводимые данные при изменении документа и при необходимости добавлять косые черты.
Другие советы
попробуйте использовать JCalendar