Java JFormattedTextField用于键入日期

时间:2020-03-05 18:57:50  来源:igfitidea点击:

我一直很难使JFormattedTextField使用格式为dd / MM / yyyy的日期。具体来说,当用户键入内容时,光标应"跳"斜线,并直接到达下一个数字位置。

另外,JFormattedTextField必须验证输入的日期是否有效,如果日期无效,则以某种方式拒绝它,或者将其"更正"为有效日期,例如,如果用户输入" 13"作为月份,则将其设置为" 01"。 ",然后在年份中加+1.

我尝试通过JFormattedTextField的validate()方法使用掩码(" ## / ## / ####")来检查日期是否有效,但是看来这两个不能很好地协同工作(或者我在Java上太绿色了,不知道怎么做... :),然后用户可以在字段中键入任何内容。

任何帮助,我们都感激不尽!谢谢!

解决方案

回答

尝试使用JCalendar

回答

我们可能必须使用常规的JTextField并使用自定义文档调用setDocument()。我建议扩展PlainDocument,这样可以在文档更改时轻松验证输入,并在需要时添加斜杠。