Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于键入日期的Java JFormattedTextField_Java_Validation_Date_Mask - Fatal编程技术网

用于键入日期的Java JFormattedTextField

用于键入日期的Java JFormattedTextField,java,validation,date,mask,Java,Validation,Date,Mask,我一直很难创建一个JFormattedTextField来使用dd/MM/yyyy格式的日期。具体来说,当用户键入时,光标应该“跳转”斜杠,并直接到达下一个数字位置 此外,JFormattedTextField必须验证输入的日期是否有效,如果日期无效,则以某种方式拒绝该日期,或者将其“更正”为有效日期,例如,如果用户输入“13”作为月份,则将其设置为“01”,并将+1添加到年份中 我尝试使用掩码(“##/##/##/######”)和JFormattedTextField的validate()方

我一直很难创建一个JFormattedTextField来使用dd/MM/yyyy格式的日期。具体来说,当用户键入时,光标应该“跳转”斜杠,并直接到达下一个数字位置

此外,JFormattedTextField必须验证输入的日期是否有效,如果日期无效,则以某种方式拒绝该日期,或者将其“更正”为有效日期,例如,如果用户输入“13”作为月份,则将其设置为“01”,并将+1添加到年份中

我尝试使用掩码(“##/##/##/######”)和JFormattedTextField的validate()方法来检查日期是否有效,但这两种方法似乎不能很好地协同工作(或者我对Java太生疏,不知道如何……:),然后用户可以在该字段上键入任何内容


非常感谢您的帮助!谢谢

尝试使用JCalendar

尝试使用JCalendar

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

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