Campo tipo Data e máscara

7 respostas
M

Pessoal!!

Meu cadastro estava funcionando perfeitamente, mas qdo coloquei máscara no campo tipo data ele dá o seguinte erro:

<blockquote>java.text.ParseException: Unparseable date: <strong>/</strong>/____”

at java.text.DateFormat.parse(Unknown Source)

at br.com.sstintas.view.ClienteJuridicoView$1.actionPerformed(ClienteJuridicoView.java:1265)

at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)

at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)

at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)

at javax.swing.DefaultButtonModel.setPressed(Unknown Source)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)

at java.awt.Component.processMouseEvent(Unknown Source)

at javax.swing.JComponent.processMouseEvent(Unknown Source)

at java.awt.Component.processEvent(Unknown Source)

at java.awt.Container.processEvent(Unknown Source)

at java.awt.Component.dispatchEventImpl(Unknown Source)

at java.awt.Container.dispatchEventImpl(Unknown Source)

at java.awt.Component.dispatchEvent(Unknown Source)

at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)

at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)

at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)

at java.awt.Container.dispatchEventImpl(Unknown Source)

at java.awt.Window.dispatchEventImpl(Unknown Source)

at java.awt.Component.dispatchEvent(Unknown Source)

at java.awt.EventQueue.dispatchEvent(Unknown Source)

at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.run(Unknown Source)</blockquote>

Outra coisa quando tento criar o arquivo jar também estou com problemas:
http://www.portaljava.com/home/modules.php?name=Forums&file=viewtopic&t=29939

Valew Galera!!

7 Respostas

K

Neste caso, me parece que você tentou salvar a data “//____” e isso realmente não é uma data. Esse erro acontece quando você entra com uma data válida? Ex 31/07/2006. Poste o código com a máscara que você criou. Se você está tentando usar MaskFormatter, use //**** para data.

M

Caro Vinícius

Estive verificando meu código e encontrei onde acontece o problema: Antes de inserir a data eu faço a seguinte verificação:
Date CliDesde = (tfClienteDesde.getText().length() == 10 ) ? formata.parse(tfClienteDesde.getText()) : null;

Só que agora ele vê que tem 10 itens e tenta salvar, daí que dá o erro.

Como poderia fazer essa verificação com a máscara??

Obrigada!

K

este tópico pode te ajudar.

M

A minha dúvida não é em relação a colocar a máscara, o problema é: o campo data não é obrigatório, então nem sempre haverá uma data para armazenar, daí vem o problema: Quando não digito a data ele tenta armazenar a máscara daí ocorre o erro porque o campo é do tipo Date.

Então faço a verificação para saber se campo está preenchido, qdo o campo não está preenchido ele encontra a máscara e daí tenta adicionar.

A minha dúvida é: como testar se o campo foi preenchido e ele desconsiderar a máscara.

Valeu!!

K

Veja este método:

public java.sql.Date converteData(String data1) { SimpleDateFormat f = new SimpleDateFormat("dd/MM/yyyy"); java.util.Date d1 = null; try { d1 = f.parse(data1); f.applyPattern("yyyy-MM-dd"); data1 = f.format(d1); } catch (Exception e) { return null; } java.sql.Date dt1 = java.sql.Date.valueOf(data1); return dt1; }

Se voce gravar no banco o retorno desse método, seu problema poderá ser resolvido. Para isso, seu atributo deve permitir null para a data. O que o método fáz, é retornar a data no formato que o BD aceita, e caso a data for inválida, seu retorno é null.

Isso te ajuda?

M

Vinícius

Muito obrigada pela dica. Deu certinho!!!

São pessoas como vc que fazem o portal java ter mais de 25 mil participantes!!!

Valeu!!! :lol:

K

AAhh… Agora gostei hein!

Criado 31 de julho de 2006
Ultima resposta 1 de ago. de 2006
Respostas 7
Participantes 2