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