Tenho um jtable com as seguintes colunas: Produto e preço, e uns jtextfield acima para inserir os dados respectivos nessa tabela, a questão é:
Gostaria de que a medida que fosse inserindo os dados nessa tabela, a coluna preço fosse sendo somada, e jogada num jlabel, e se excluir uma linha subtrair o valor total pelo valor excluído, mas como posso fazer isso??
Aee galera começei fazendo o código a seguir, o problema eh q ele só retorna o valor da ultima linha do jtable =/…se alguém identificar o problema por favor me avise
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "11.11R$ 44.44"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1222)
at java.lang.Double.parseDouble(Double.java:510)
at kartodromo.TShopping.formatMoney(TShopping.java:786)
at kartodromo.TShopping.jButton3ActionPerformed(TShopping.java:582)
at kartodromo.TShopping.access$900(TShopping.java:29)
at kartodromo.TShopping$10.actionPerformed(TShopping.java:414)
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: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)
No caso, ele só pega o valor 11,11 e joga no jlabel, gostaria de saber porque não pega das linhas seguintes.
private void calculaTotalProdutos() {
try{
String soma = null;
for (int i=0; i <= (jTable1.getRowCount()); i++) {
String valorAux = (""+formatToDisplay(formatMoney((String.valueOf(jTable1.getValueAt(i,1))))));
soma+= valorAux.toString();
}
jLabel2.setText(""+formatToDisplay(formatMoney(soma)));
}
catch(Exception e){ JOptionPane.showMessageDialog(null,"Erro ao calcular Total Produtos: "+e.getMessage());
}
}
só que o erro de pegar só o primeiro valor da primeira linha do jtable persiste…por favor se alguém puder revisar meu código, olhei linha por linha e não acho erro algum ><