RE:jFormattedTextField con fecha por defect y form
Buenas,
Lo primero que se me ocurre es mirar si el formato de la fecha que introduces es el adecuado con la mascara que has puesto al jformattedtextfield.
La fecha enviasela con un String creado de esta manera por ejemplo:
Date hoy= new Date();
SimpleDateFormat sdf= new SimpleDateFormat("dd/MM/yyyy");
String fecha = sdf.format(hoy);
Y en cuento al jformattedtextfield, podías poner la mascara así:
MaskFormatter mascara = null;
try {
mascara = new MaskFormatter("##/##/####");
} catch (ParseException ex) {
}
texto= new JFormattedTextField(mascara);
texto.setValue("");
try {
texto.commitEdit();
} catch (ParseException ex1) {
}
Para verificar que la fecha es correcta quizás exista algo que yo desconozco porque no sé mucho pero siempre puedes crear código para verficarlo. Te he preparado un método que te puede servir.
private boolean fechaCorrecta(String fecha){
if((fecha.substring(2,3)).compareTo("/")==0 && (fechaNac.substring(5,6)).compareTo("/")==0){
int año = Integer.parseInt(fecha.substring(6));
int mes = Integer.parseInt(fecha.substring(3,5));
int dia = Integer.parseInt(fechaNac.substring(0,2));
if (año > 1900) {
if (mes > 0 && mes < 13) {
int tope;
if (mes == 1 || mes == 3 || mes == 5 || mes == 7 ||
mes == 8 || mes == 10 || mes == 12) {
tope = 31;
} else if (mes == 2) {
if (año % 4 == 0) {
tope = 29; //es bisiesto
} else tope = 28;
} else tope = 30;
if (dia > 0 && dia < tope + 1) {
return true;
} else {
ControladorVentanaError cve = ControladorVentanaError.
obtControladorVentanaError();
cve.mostrar("La fecha no es correcta");
return false;
}
} else {
ControladorVentanaError cve = ControladorVentanaError.
obtControladorVentanaError();
cve.mostrar("La fecha no es correcta");
return false;
}
} else {
ControladorVentanaError cve = ControladorVentanaError.
obtControladorVentanaError();
cve.mostrar("La fecha no es correcta");
return false;
}
}
else{
ControladorVentanaError cve = ControladorVentanaError.
obtControladorVentanaError();
cve.mostrar("La fecha no es correcta");
return false;
}
}
Saludos,
Enara