Java JFormattedTextField для ввода даты - PullRequest
1 голос
/ 17 сентября 2008

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

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

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

Любая помощь очень ценится! Спасибо!

Ответы [ 2 ]

1 голос
/ 17 сентября 2008

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

0 голосов
/ 17 сентября 2008

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

...