java.text.ParseException: Unparseable date: "21/12/2010"
at java.text.DateFormat.parse(DateFormat.java:337)
at Interface.JanelaAdicionarNovo.btnAdicionarActionPerformed(JanelaAdicionarNovo.java:296)
at Interface.JanelaAdicionarNovo.access$100(JanelaAdicionarNovo.java:11)
at Interface.JanelaAdicionarNovo$2.actionPerformed(JanelaAdicionarNovo.java:94)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Interface.JanelaAdicionarNovo.btnAdicionarActionPerformed(JanelaAdicionarNovo.java:302)
at Interface.JanelaAdicionarNovo.access$100(JanelaAdicionarNovo.java:11)
at Interface.JanelaAdicionarNovo$2.actionPerformed(JanelaAdicionarNovo.java:94)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
rogelgarcia
Usa assim
newSimpleDateFormat("dd/MM/yyyy");
guisantogui
Continuou lançando a excessão!! :? :? :?
rogelgarcia
O do unparsable date??
Que coisa…
rogelgarcia
Posta o código pra ver como ficou
guisantogui
ok
Esse é o evento que adiciona uma pessoa na lista eu valido a data la dentro!
privatevoidbtnAdicionarActionPerformed(java.awt.event.ActionEventevt){if(txtNome.getText().trim().equalsIgnoreCase("")){JOptionPane.showMessageDialog(rootPane,"O campo nome deve ser preenchido");}elseif(txtEmailGeral.getText().trim().equalsIgnoreCase("")){JOptionPane.showMessageDialog(rootPane,"O e-mail geral nome deve ser preenchido");}elseif(txtEndereco.getText().trim().equalsIgnoreCase("")){JOptionPane.showMessageDialog(rootPane,"O campo endereço deve ser preenchido");}elseif(txtBairro.getText().trim().equalsIgnoreCase("")){JOptionPane.showMessageDialog(rootPane,"O campo bairro deve ser preenchido");}elseif(txtCidade.getText().trim().equalsIgnoreCase("")){JOptionPane.showMessageDialog(rootPane,"O campo cidade deve ser preenchido");}elseif(txtUF.getText().trim().length()<2){JOptionPane.showMessageDialog(rootPane,"O campo UF deve ser preenchido completamente");}elseif(txtTelefone.getText().trim().equalsIgnoreCase("")){JOptionPane.showMessageDialog(rootPane,"O campo telefone deve ser preenchido");}elseif(txtCpf.getText().trim().length()<11){JOptionPane.showMessageDialog(rootPane,"O campo CPF deve ser preenchido completamente");}elseif(txtDataOrigem.getText().trim().length()<8){JOptionPane.showMessageDialog(rootPane,"O campo Data de Nascimento / Fundação deve ser preenchido completamente");}else{Stringnome=txtNome.getText();Stringemail=txtEmailGeral.getText();Stringfone=txtCidade.getText();Stringendereco=txtEndereco.getText();Stringbairro=txtBairro.getText();Stringcidade=txtTelefone.getText();Stringuf=txtUF.getText();Stringcpf=txtCpf.getText();SimpleDateFormatformatoData=newSimpleDateFormat("dd/mm/aaaa");DatedataOrigem=null;Dateagora=newDate();try{dataOrigem=formatoData.parse(txtDataOrigem.getText());}catch(ParseExceptionex){ex.printStackTrace();}if(dataOrigem.before(agora)){JOptionPane.showMessageDialog(rootPane,"Data inválida");}else{Pessoapessoa=newPessoa(nome,endereco,fone,email,cpf,bairro,cidade,uf,dataOrigem);pessoa.setApelido(txtApelido.getText());pessoa.setCep(txtCep.getText());pessoa.setHomepage(txtHomePage.getText());pessoa.setFax(txtFax.getText());cadastroDePessoas.adiciona(pessoa);JOptionPane.showMessageDialog(null,"Individuo adicionado com sucesso","Parabéns",JOptionPane.INFORMATION_MESSAGE);this.dispose();}}}
rogelgarcia
Cara … vc colocou diferente
Nao é new SimpleDateFormat(“dd/mm/aaaa”);
É new SimpleDateFormat("[color=red]dd/MM/yyyy[/color]");
(e é case sensitive)
guisantogui
rogelgarcia:
Cara … vc colocou diferente
Nao é new SimpleDateFormat(“dd/mm/aaaa”);
É new SimpleDateFormat("[color=red]dd/MM/yyyy[/color]");
(e é case sensitive)
Mas ateh nas Strings
guisantogui
Não tinha testado direto, funcionou legal!
Brigadão pela ajuda mesmo sendo meio tosca a duvida!
rogelgarcia
Tranquilo… até mais!!
O negócio da String é porque aquela String define o padrão da data que vc quer… então tem que ser igualzinho eu postei… cada letra é uma coisa
MM significa mes usando duas casas
se vc coloca
mm siguinitica minutos usando duas casas…
Olha o link que te passei que lá tem todos os simbolos que podem ser usados…
guisantogui
Eu dei uma olhada na API, mas é muita baitolisse do JAVA devia ter algum metodo mais facil de se fazer isso, ora ter que chamar outra classe para trocar o tipo do dado!
Comentário:
Existem os metodos after() e before() não seria a mesma coisa se soh existisse um?
rogelgarcia
Haahahha… essas baitolices é para dar poder ao programador… mas precisa saber usar…
Existe o after e o before… para poder facilitar…
De qualquer jeito… after nao é o contrário de before :lol:
guisantogui
Pode ateh dar poder ao programador, mas fica parecendo gambiarra, com akelas Strings no meio!
não gosto dessas Datas em JAVA!
rogelgarcia
A String é o formato… né gambiarra nao
Formatos são dados em Strings…
rogelgarcia
Tem umas outras formas de usar formatos pre montados aí vc nao precisa usar a String… mas fica de pesquisa pra vc…
guisantogui
Axei mais um errinho, qdo eu não passo o formato certo ele lança uma npe, obvio, pq nada vai ser passado, o que eu deveria fazer pra conserar isso?
rogelgarcia
O NullPointer nao foi pelo formato inválido… e sim porque nao gerou nenhuma data…
aí a data fica nula… e dá nullpointer…
Ao invés de dar e.printStackTrace… vc dá throw new RuntimeException(“Nao foi possivel converter a data”);
guisantogui
Olha como eu fiz, mas continuo estourando a npe!
SimpleDateFormatformatoData=newSimpleDateFormat("dd/MM/yyyy");DatedataOrigem=null;Dateagora=newDate();try{dataOrigem=formatoData.parse(txtDataOrigem.getText());}catch(ParseExceptionex){JOptionPane.showMessageDialog(rootPane,"Formato da data incorreto","Erro",JOptionPane.ERROR_MESSAGE);}catch(NullPointerExceptionnpe){thrownewRuntimeException("Campo em Branco");}if(dataOrigem.after(agora)){JOptionPane.showMessageDialog(rootPane,"Data inválida");}else{Pessoapessoa=newPessoa(nome,endereco,fone,email,cpf,bairro,cidade,uf,dataOrigem);pessoa.setApelido(txtApelido.getText());pessoa.setCep(txtCep.getText());pessoa.setHomepage(txtHomePage.getText());pessoa.setFax(txtFax.getText());cadastroDePessoas.adiciona(pessoa);JOptionPane.showMessageDialog(null,"Individuo adicionado com sucesso","Parabéns",JOptionPane.INFORMATION_MESSAGE);this.dispose();
guisantogui
Tipo executei o jar, tentei estourar a nullPointer, mas não estourou será que devo deixar assim?
rogelgarcia
try {
dataOrigem = formatoData.parse(txtDataOrigem.getText());
}
catch (ParseException ex) {
JOptionPane.showMessageDialog(rootPane, "Formato da data incorreto", "Erro", JOptionPane.ERROR_MESSAGE);
// aqui vc deve dar um return.. pq se nao.. vai mostrar a mensagem e continuar o processamento.. com a data nula
}
guisantogui
Tipo apareceu o que eu escrevi, mas msmo assim ainda estourou!
não?
rogelgarcia
try {
dataOrigem = formatoData.parse(txtDataOrigem.getText());
}
catch (ParseException ex) {
JOptionPane.showMessageDialog(rootPane, "Formato da data incorreto", "Erro", JOptionPane.ERROR_MESSAGE);
return; //se der pau mostra e termina o método para nao dar outros problemas
}