用于键入日期的Java JFormattedTextField
我一直很难创建一个JFormattedTextField来使用dd/MM/yyyy格式的日期。具体来说,当用户键入时,光标应该“跳转”斜杠,并直接到达下一个数字位置 此外,JFormattedTextField必须验证输入的日期是否有效,如果日期无效,则以某种方式拒绝该日期,或者将其“更正”为有效日期,例如,如果用户输入“13”作为月份,则将其设置为“01”,并将+1添加到年份中 我尝试使用掩码(“##/##/##/######”)和JFormattedTextField的validate()方法来检查日期是否有效,但这两种方法似乎不能很好地协同工作(或者我对Java太生疏,不知道如何……:),然后用户可以在该字段上键入任何内容用于键入日期的Java JFormattedTextField,java,validation,date,mask,Java,Validation,Date,Mask,我一直很难创建一个JFormattedTextField来使用dd/MM/yyyy格式的日期。具体来说,当用户键入时,光标应该“跳转”斜杠,并直接到达下一个数字位置 此外,JFormattedTextField必须验证输入的日期是否有效,如果日期无效,则以某种方式拒绝该日期,或者将其“更正”为有效日期,例如,如果用户输入“13”作为月份,则将其设置为“01”,并将+1添加到年份中 我尝试使用掩码(“##/##/##/######”)和JFormattedTextField的validate()方
非常感谢您的帮助!谢谢 尝试使用JCalendar尝试使用JCalendar您可能需要使用常规JTextField并对自定义文档调用setDocument()。我建议扩展PlainDocument,这样可以在文档更改时轻松验证输入,并根据需要添加斜杠 您可能必须使用常规JTextField,并对自定义文档调用setDocument()。我建议扩展PlainDocument,这样可以在文档更改时轻松验证输入,并根据需要添加斜杠