pessoal é o seguinte, fiz um JFormattedTextField para receber uma data, e um try para verificar o campo JFormattedTextField. se o usuario digita uma data valida
o sistema cadastra. porém se ele digita algo como 40/25/8572 o faz o botão perder a ação. de cadastrar. se o try da erro ele mostra a mensagem de que a data é invalida.
esse é meu codigo
// fiz esse metodo para receber a dataprivateJFormattedTextFieldgetNascimentoField(){setLayout(null);if(nascimentoField==null){try{nascimentoField=newJFormattedTextField(newMaskFormatter("##/##/####"));}catch(ParseExceptione){e.printStackTrace();}nascimentoField.setBounds(30,140,80,20);getContentPane().add(nascimentoField);}returnnascimentoField;}// no action do botao fiz issopublicvoidactionPerformed(ActionEventsalvar){SimpleDateFormatdata=newSimpleDateFormat("dd/MM/yyyy");// aqui ele verifica o campo digitado se não esta vazio. se o cara digita algo ele consegui fazer o try só que com uma data muito bagunçada. e trava o botão.try{DatedataNasc=data.parse(getNascimentoField().getText());animal.setDateNascimento(dataNasc);}catch(ParseExceptione){JOptionPane.showMessageDialog(null,"Data de Nascimento é invalida!");e.printStackTrace();}
como faço um try que verifica que a data é valida? e não uma 78/15/1958
?
String dia = getNascimentoField().getText().toString();
String[] dianum = dia.split("\\/");
System.out.println(dianum[0]);
porém encontrei a barreira de não conseguir converter a dianum[0] em inteiro para verificar o tamanho do numero.
Danilo_Carvalho
O NickStyle mostrou uma dica acima que eu não sabia, mas acabei de fazer uns testes aqui, recomendo.
Deivid_Ribeiro
Realmente NickStyle isso resolveu boa parte do meu problema o que ele fez agora foi o seguinte,
ele aceita a data 40/09/2010 e converte ela para 10/10/2010 faz os dias que passaram incluir no mes.
só que não impede de cadastrar uma data.
queria que se ele digita-se isso impedisse ele de cadastrar.
NickStyle valeu cara através da sua logica consegui a solução para o codigo que ficou assim:
try{data.setLenient(false);DatedataNasc=data.parse(getNascimentoField().getText());animal.setDateNascimento(dataNasc);AcaoSalvar(salvar);}catch(ParseExceptione){JOptionPane.showMessageDialog(null,"Data de Nascimento é invalida!");e.printStackTrace();}
Y
yurisisbell
Deivid_Ribeiro:
NickStyle valeu cara através da sua logica consegui a solução para o codigo que ficou assim:
try{data.setLenient(false);DatedataNasc=data.parse(getNascimentoField().getText());animal.setDateNascimento(dataNasc);AcaoSalvar(salvar);}catch(ParseExceptione){JOptionPane.showMessageDialog(null,"Data de Nascimento é invalida!");e.printStackTrace();}
cara desculpa minha ignorancia mas ja aproventando o topico... isso ai valida a data?
Se valida , quando a data é nula o que acontece da erro no gravar somente?