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);
}
}