Вопрос

У меня возникли проблемы с созданием JFormattedTextField для использования дат в формате дд/ММ/гггг.В частности, когда пользователь печатает, курсор должен «перепрыгивать» косую черту и переходить непосредственно к следующей числовой позиции.

Кроме того, JFormattedTextField должен проверить, действительна ли введенная дата, и каким-то образом отклонить ее, если дата недействительна, или «исправить ее» до действительной даты, например, если пользователь вводит «13» в качестве месяца, устанавливает ее как «01». " и добавьте +1 к году.

Я попробовал использовать маску ("##/##/####") с методом validate() JFormattedTextField, чтобы проверить, действительна ли дата, но оказалось, что эти два не работают вместе (или я Я слишком зелен в Java, чтобы знать, как...:), и тогда пользователь сможет ввести в поле что угодно.

Любая помощь действительно ценится!Спасибо!

Это было полезно?

Решение

Возможно, вам придется использовать обычный JTextField и вызвать setDocument() с пользовательским документом.Я рекомендую расширить PlainDocument, это позволит легко проверять вводимые данные при изменении документа и при необходимости добавлять косые черты.

Другие советы

попробуйте использовать JCalendar

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top