Java - Problemas con JFormattedTextField

   
Vista:

Problemas con JFormattedTextField

Publicado por Carlos (1 intervención) el 03/08/2009 22:17:04
Hola a todos, para mi aplicacion debo validar unas fechas pero si por ejemplo entro en un JFormattedTextField "32/12/2008" este lo acomoda a "01/01/2009", yo solo quiero que quede la fecha como se ingreso y marcar el error.

Codigo:

clase para la mascara:
import javax.swing.text.MaskFormatter;

public class AG_FormatoFecha extends MaskFormatter{

/** Para convertir Date a String y viceversa */
private SimpleDateFormat formato = null;

/** Construye la máscara con el patrón "##/##/####" */
public AG_FormatoFecha() throws ParseException
{
super("##/##/####");

formato = new SimpleDateFormat("dd/MM/yyyy");
setPlaceholderCharacter('_');
}

/**NOTA:: si habilito lo de abajo al presionar enter me acomoda la fecha
* Ejem: si pongo 32/12/2008 lo acomoda a 01/01/2009
*
* Convierte el String a Date.
* Esta clase es válida para un uso sencillo del JFormattedTextField. Para
* un uso más avanzado es necesario llamar al método de mismo nombre de
* la clase padre.
*/
public Object stringToValue(String text) throws ParseException
{
return formato.parseObject(text);
}

/**
* Convierte el Date a String.
* Esta clase es válida para un uso sencillo del JFormattedTextField. Para
* un uso más avanzado es necesario llamar al método del mismo nombre de
* la clase padre.
*/
public String valueToString(Object value) throws ParseException
{
if (value instanceof Date)
return formato.format((Date) value);

//return new String("");
//return formato.format(new Date());
return "__/__/____";
}


}

creo el JFormattedTextField de esta manera:

txtDateTo = new JFormattedTextField( new AG_FormatoFecha());
txtDateTo.setPreferredSize(dimTxtDate);
txtDateTo.setMaximumSize(dimTxtDate);
txtDateTo.setAlignmentX(0.5f);
txtDateTo.setBackground(txtColor);

Que estoy haciendo mal ??

Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder