Somar colunas de jtable

Boa noite galera…é o seguinte…

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??

Fico no aguardo galera

Agradeço desde já

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

Segue o código abaixo:

        String soma = null;
        for (int i=0; i<=jTable1.getRowCount();i++) { 

         jLabel2.setText(""+formatToDisplay( formatMoney(soma+=(jTable1.getValueAt(i,1).toString()))));  
}  

e esses são os métodos

 public static Double formatMoney( String moneyString ){
        return Double.parseDouble( moneyString.split("\\$", 2)[1].trim().replace(",", ".") );
    }
 
   public static String formatToDisplay( double money ){
        return "R$" + String.format("%.2f", money).replace(".", ",");
    }
   

Você tem um problema de lógica.
Dentro do for, faça a soma dos valores da coluna.
Ao terminar o for, configure o valor da soma no label.

[]'s

Bom dia david

Então cara, fiz do jeito que você falou, mas agora não pega nenhum valor de nenhuma linha =S

Poderia só me dar um exemplo de como ficaria o código?

oo código está assim

        String soma = null;
        for (int i=0; i<=jTable1.getColumnCount();i++) { 

         soma+=(jTable1.getValueAt(i,1).toString().replace(".",","));  
         }  
        jLabel2.setText(""+formatToDisplay(formatMoney(soma)));

Aee galera esse é o erro:


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.

Meu método está assim agora:

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 ><

Ae galera segue abaixo como estão meus métodos

private void calculaTotalProdutos() {  
try{  
   String soma= null;
  for (int i=0; i < jTable2.getRowCount() ; i++) {  
  String valorAux = (""+formatToDisplay(formatMoney((String.valueOf(jTable2.getValueAt(i,1))))));  
      soma += valorAux.toString();   
  }   
  jLabel5.setText(""+formatToDisplay(formatMoney(soma)));
     }  
catch(Exception e){ JOptionPane.showMessageDialog(null,"Erro ao calcular Total Produtos: "+e.getMessage());   
}   
}  

 public static Double formatMoney( String moneyString ){
        return Double.parseDouble( moneyString.split("\\$", 2)[1].trim().replace(",", ".") );
    }
 
   public static String formatToDisplay( double money ){
        return "R$" + String.format("%.2f", money).replace(".", ",");
    }
}

quando tiro o + da parte seguinte

 soma += valorAux.toString();   

ele traz só um valor de uma coluna, agora se eu coloco += dá o seguinte erro:

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string:

Alguém poderia me dar uma luz por favor se souber qual o erro

Obrigadoo