Erro ao carregar data convertida no JTABLE

1 resposta
leandrovrb

Ola.
Estou com grande dúvida na hra de carregar a data no jtable!
Fiz um codigo que faz a conversao para dd/mm/aaaa e carrega no jable, se o ORD_PAG tiver sido inserido a data ele converte e me apresenta no jtable pois ele é NOT NULL
(Só vai ser inserido a data se for pago),Entao fiz um IF pegando o tamanho de caractes chamando .length .Mas se ele nao tiver sido inserido ele da o erro logo abaixo:

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 Movimento.OrdemServico.preencher_jtable_AbaPesq_todos(OrdemServico.java:2445)
at Movimento.OrdemServico.btTodosActionPerformed(OrdemServico.java:1359)
at Movimento.OrdemServico.access$3100(OrdemServico.java:38)
at Movimento.OrdemServico$30.actionPerformed(OrdemServico.java:770)
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:6216)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5981)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4583)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4556)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4150)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4413)
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)

Abaixo o Código: que fiz:

public void preencher_jtable_AbaPesq_todos() {
        Date dataDe=null,dataAte=null;
    String dataDeStr="",dataAteStr="";
    String dataRecebe="",dataConverte="";
    
    jtAbaPesq.getColumnModel().getColumn(0).setPreferredWidth(7);//codigo
        jtAbaPesq.getColumnModel().getColumn(1).setPreferredWidth(14);//nome
        jtAbaPesq.getColumnModel().getColumn(2).setPreferredWidth(20);//nome
        jtAbaPesq.getColumnModel().getColumn(3).setPreferredWidth(20);//nome
        jtAbaPesq.getColumnModel().getColumn(4).setPreferredWidth(10);//nome
        jtAbaPesq.getColumnModel().getColumn(5).setPreferredWidth(14);//nome
        jtAbaPesq.getColumnModel().getColumn(6).setPreferredWidth(40);//nome
        DefaultTableModel modelo = (DefaultTableModel) jtAbaPesq.getModel();
        modelo.setNumRows(0);
             
           
try{
dataDe = new SimpleDateFormat("dd/MM/yyyy").parse(tfdataIni.getText());
dataDeStr = new SimpleDateFormat("yyyy/MM/dd").format(dataDe); 
dataAte = new SimpleDateFormat("dd/MM/yyyy").parse(tfDataFim.getText());
dataAteStr = new SimpleDateFormat("yyyy/MM/dd").format(dataAte); 
    
}
 catch (Exception erro)
        {
            JOptionPane.showMessageDialog(null,"Não conseguiu ver data"+erro);
        } 

            con_OrdemServico.executeSQL("select * from TBORDEM where ORD_DATA between '" +dataDeStr+"' and '" +dataAteStr+"' order by tbordem.ord_ID descending");
           
            while (con_OrdemServico.resultset.next()){
                dataRecebe=String.valueOf(con_OrdemServico.resultset.getDate("ORD_PAG"));
                 if(dataDeStr.length() < 8)
            {
              SimpleDateFormat data = new SimpleDateFormat("dd/MM/yyyy");
              modelo.addRow(new Object[]{con_OrdemServico.resultset.getString("ORD_ID"), data.format(con_OrdemServico.resultset.getDate("ORD_DATA")), con_OrdemServico.resultset.getString("ORD_CLI"), con_OrdemServico.resultset.getString("ORD_FUN"), con_OrdemServico.resultset.getString("ORD_VALOR"),con_OrdemServico.resultset.getString("ORD_PAG"),con_OrdemServico.resultset.getString("ORD_DESC")});
           }
          else{
           SimpleDateFormat data = new SimpleDateFormat("dd/MM/yyyy");
            modelo.addRow(new Object[]{con_OrdemServico.resultset.getString("ORD_ID"), data.format(con_OrdemServico.resultset.getDate("ORD_DATA")), con_OrdemServico.resultset.getString("ORD_CLI"), con_OrdemServico.resultset.getString("ORD_FUN"), con_OrdemServico.resultset.getString("ORD_VALOR"),data.format(con_OrdemServico.resultset.getDate("ORD_PAG")),con_OrdemServico.resultset.getString("ORD_DESC")});
         
          }
        } con_OrdemServico.resultset.first();
             }
             }
         
             catch (SQLException erro) {
            JOptionPane.showMessageDialog(null, "Erro ao listar no JTable " + erro);
             }
    
}

1 Resposta

Eder_Peixoto

Pela tua pilha, é muito provável que a data (classe abstrata java.util.Calendar) está NULL, pois na invocação do método setTime houve o disparo da exception NullPointerException.

Criado 18 de julho de 2009
Ultima resposta 20 de jul. de 2009
Respostas 1
Participantes 2