Qdo inicia JFPrincipal, tem umas guias, na guia Inserir tem Controle de Materiais que qdo chamada lista numa jtable as construções(obras), cadastradas no bd. Após selecionar um dos cadastros e clicar em Atualizar Que chama o JIFInserir,
carrega as info de preenchimento deste JFrame que carregar os dados da tabela q contém as colunas: Materiais, Quantidade, Valor(double) e Total(double). Mas quando pego os Double’s do banco e tendo deixa-los com formato decimal e inserir nas respectivas colunas na Jtable ele da erro - Cannot format given Object as a Number - . Andei lendo sobre cellrender e celleditor e até adicionei as 02 classes mas tbm n consegui usa-las. Bom é isso.
Tentativas: Cheguei até a Trocar os campos pra String no get set mas não funcionou. atualmente são double.
Pode me dar uma aula de como fazer? Obrigado.
exemplo 1: DecimalFormat
DecimalFormat df = new DecimalFormat();
df.applyPattern("R$ #,##0.00");
DefaultTableModel dtm =(DefaultTableModel) jTbAcabamento.getModel();//JTable
dtm.setNumRows(0);
for(ProdutoObra paux : po.ListarPO()){
//jtable Acabamento
if(paux.getId_obra()== Integer.parseInt(jTxtCodigo.getText()) && paux.getCod_categoria()== 1){
String valor = df.format(paux.getValor()); //Passando pra String
String total = df.format(paux.getTotal());
dtm.addRow(new Object[]{paux.getCodigo(), //adicionando bd as linhas
paux.getProduto(),
paux.getQuantidade(),
valor,
total
}
);
}
}
exemplo 2: NumberFormat
DefaultTableModel dtm =(DefaultTableModel) jTbAcabamento.getModel();//JTable
dtm.setNumRows(0);
for(ProdutoObra paux : po.ListarPO()){
//jtable Acabamento
if(paux.getId_obra()== Integer.parseInt(jTxtCodigo.getText()) && paux.getCod_categoria()== 1){
NumberFormat z = NumberFormat.getCurrencyInstance();
dtm.addRow(new Object[]{paux.getCodigo(), //adicionando bd as linhas
paux.getProduto(),
paux.getQuantidade(),
z.format(paux.getValor()),
z.format(paux.getTotal())
}
);
}
}
exemplo 3:
DefaultTableModel dtm =(DefaultTableModel) jTbAcabamento.getModel();//JTable
dtm.setNumRows(0);
for(ProdutoObra paux : po.ListarPO()){
//jtable Acabamento
if(paux.getId_obra()== Integer.parseInt(jTxtCodigo.getText()) && paux.getCod_categoria()== 1){
dtm.addRow(new Object[]{paux.getCodigo(), //adicionando bd as linhas
paux.getProduto(),
paux.getQuantidade(),
NumberFormat.getCurrencyInstance().format(paux.getValor()),
NumberFormat.getCurrencyInstance().format(paux.getTotal())
}
);
}
}
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Cannot format given Object as a Number
at java.text.DecimalFormat.format(DecimalFormat.java:505)
at java.text.Format.format(Format.java:157)
at javax.swing.plaf.synth.SynthTableUI$SynthTableCellRenderer.configureValue(SynthTableUI.java:803)
at javax.swing.plaf.synth.SynthTableUI$SynthTableCellRenderer.getTableCellRendererComponent(SynthTableUI.java:790)
at javax.swing.JTable.prepareRenderer(JTable.java:5731)
at javax.swing.plaf.synth.SynthTableUI.paintCell(SynthTableUI.java:684)
at javax.swing.plaf.synth.SynthTableUI.paintCells(SynthTableUI.java:581)
at javax.swing.plaf.synth.SynthTableUI.paint(SynthTableUI.java:365)
at javax.swing.plaf.synth.SynthTableUI.update(SynthTableUI.java:276)
at javax.swing.JComponent.paintComponent(JComponent.java:778)
at javax.swing.JComponent.paint(JComponent.java:1054)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JViewport.paint(JViewport.java:731)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:585)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:585)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:585)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5228)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1508)
at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1439)
at javax.swing.RepaintManager.paint(RepaintManager.java:1236)
at javax.swing.JComponent.paint(JComponent.java:1040)
at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39)
at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:78)
at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:115)
at java.awt.Container.paint(Container.java:1967)
at java.awt.Window.paint(Window.java:3877)
at javax.swing.RepaintManager$3.run(RepaintManager.java:807)
at javax.swing.RepaintManager$3.run(RepaintManager.java:784)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:784)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:757)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:706)
at javax.swing.RepaintManager.access$1000(RepaintManager.java:62)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1647)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)