Salve a tutti, ho un rompicapo per i piu bravi(io gia’ me lo sono rotto il capo
ho una jtextformattedfield c he accetta una stringa che dovrebbe essere ua data,
ed ho implementato un focus listener che con il metodo focuslost nel momento in cui io
mi sposto su un altro campo fa il parse della stringa per vedere se e’ una data
nel caso in cui non lo e’ pulisce il campo.
non funziona, come e’ possibile che inserendo una stringa tipo (12/12)il parse funziona
e mi ritorna che non e’ un a data, ed inserendo una stringa tipo(12/12/12)il parse restituisce che la data e’ corretta dopo che io mi aspetto una data in formato(dd/mm/yyyy)?
poi una cosa per me strana e di seguito vi posto il codice, dopo la prima volta
che lui mi valida una data, la volta seguente che io metto una data errata tipo(12/12)
quando mi sposto di campo mi ripropone la data vecchia valicata correttamente

chiedo inoltre dovendo assegnare il listener a tre campi data, come posso capire nel listener quale e’ il campo
data che ha perso il focus e di conseguenza fare delle operazioni su di lui?

ecco il codice

public java.util.Date data_temp=new java.util.Date();



class Inputdataconsegna extends FocusAdapter{

public void focusLost(FocusEvent e)
{
try{
data_temp=sdf.parse(data_consegna.getText());
System.out.println("ho passato il controllo");
}catch(Exception pe){System.out.println("sono nel parse");
data_consegna.setText("");}


System.out.println("il campo data e': "+data_consegna.getText());

}


}

public void imposta_campi_data(){

try {

MaskFormatter f = new MaskFormatter("##/##/####");
f.setValueContainsLiteralCharacters(false);
data_prev=new JFormattedTextField(f);
data_prev.setHorizontalAlignment(JTextField.CENTER );
data_consegna=new JFormattedTextField(f);
data_consegna.setHorizontalAlignment(JTextField.CE NTER);
} catch( ParseException pe ) {}
}