[RESOLVIDO]Tratar data vazia no JdateChooser

4 respostas
F

Pessoal Bom dia,

É o seguinte, to com uma duvida, ou melhor um erro para tratar no sistema na parte de cadastro.

O cadastro esta efetuando normalmente com todos os campos povoados, no entanto quando tento gravar com a data vazia, ele gera o erro sempre.
Gostaria de estar tratando este erro.

ex:
if(jc_datacadCliente.getDate(null))//exemplo para tratar o erro
{
JOptionPane.showMessageDialog(null, "Favor informar a data !") //exemplo para tratar o erro
}
Estou usando o jdatechooser .
ConverteData converte = new ConverteData();
        Date data = jc_datacadCliente.getDate();//pego formato date
        Date data2 = jc_datanascCliente.getDate();//pego formato date
        String dataFormatada = converte.ConverteMysql(data);
        String dataFormatada2 = converte.ConverteMysql(data2);
 try {
             
                String sql = "insert into tbcliente (nmcliente,cpf_cliente,rg_cliente, dt_nasc_cliente,data_cadastro,fone_cliente,cel_cliente,email_cliente,numero, complemento,bairro,cidade,sgestado,cep,rua)"
                        + "values('" + tf_nomeCliente.getText() + "','" + tf_cpfCliente.getText() + "',"
                        + "'" + tf_rgCliente.getText() + "','" + dataFormatada2 + "',"
                        + "'" + dataFormatada + "',"
                        + "'" + tf_telCliente.getText() + "','" + tf_celCliente.getText() + "',"
                        + "'" + tf_emailCliente.getText() + "','" + tf_numCliente.getText() + "',"
                        + "'" + tf_complemento.getText() + "','" + tf_bairroCliente.getText() + "',"
                        + "'" + tf_cidadeCliente.getText() + "','" + jComboBox1.getSelectedItem() + "',"
                        + "'" + tf_cepCliente.getText() + "','" + tf_ruaCliente.getText() + "')";
                // System.out.print(sql);

                con_cliente.statement.executeUpdate(sql);
                con_cliente.executeSQL("select * from tbcliente");

                JOptionPane.showMessageDialog(null, "Cadastro Efetuado com Sucesso !");            

        } catch (SQLException e) {
            
            JOptionPane.showMessageDialog(null, "Erro SQL" + e);
            
        }

[color=red][size=18]ERRO GERADO QUANDO GRAVA COM A DATA NULL[/size][/color]

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at java.util.Calendar.setTime(Calendar.java:1075)
        at java.text.SimpleDateFormat.format(SimpleDateFormat.java:876)
        at java.text.SimpleDateFormat.format(SimpleDateFormat.java:869)
        at java.text.DateFormat.format(DateFormat.java:316)
        at Utilitarios.ConverteData.ConverteMysql(ConverteData.java:18)
        at Cadastros.Clientes.bt_gravarActionPerformed(Clientes.java:548)
        at Cadastros.Clientes.access$700(Clientes.java:28)
        at Cadastros.Clientes$8.actionPerformed(Clientes.java:215)
        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.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
        at java.awt.Component.processMouseEvent(Component.java:6288)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6053)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4651)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4481)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
        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:4481)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
        at java.awt.EventQueue.access$000(EventQueue.java:84)
        at java.awt.EventQueue$1.run(EventQueue.java:602)
        at java.awt.EventQueue$1.run(EventQueue.java:600)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
        at java.awt.EventQueue$2.run(EventQueue.java:616)
        at java.awt.EventQueue$2.run(EventQueue.java:614)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
        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)

Obrigado Pessoal

4 Respostas

D

Simples, verifica se a variável data possui alguma coisa e seta nela uma nova data.

F

Obrigado,

mas esta parte ja esta pronta.

Preciso mesmo é de tratar o erro, quando for cadastrar a data estiver vazia ou null, exibir a mensagem “A data tem que ser preenchida! favor preencher nova data”;

Obrigado

D

Try/catch

F

Resolvido,

segue o tratamento que fiz

if ((jc_datacadCliente.getDate() == null) || (jc_datanascCliente.getDate() == null)) {
            JOptionPane.showMessageDialog(null, "Informe a Data de Cadastro e a Data de Aniverário !!!");
            bt_gravar.setEnabled(true);
            jc_datacadCliente.requestFocus(true);
            jc_datanascCliente.requestFocus(true);
        } else {
            //AKI VAI O CODIGO DE INSERÇÃO
                }


Obrigado
Criado 24 de junho de 2011
Ultima resposta 24 de jun. de 2011
Respostas 4
Participantes 2