jTable - Soma de dados da coluna

Boa tarde galera…
Estou com uma pequena duvida.
Como faco para somar os dados que estao em uma coluna da minha jTable.
Fiz ate aqui… procurei o metodo para somar… mas ainda nao encontrei…

int count= jTable1.getRowCount(); for (int row=count-1; row>=0; row--){ Double xPeso= (Double) jTable1.getValueAt(row,1); Double xNota= (Double) jTable1.getValueAt(row,3); jTable1.setValueAt(xPeso*xNota, row,4); jTextField3.setText(String.valueOf(jTable1.getValueAt( ???? , row,4))); }
Estou fazendo a multiplicacao da coluna 1 com a 3 e jogando o resultado na coluna 4.
Mas no campo jTextField3, precisava atribuir o valor da soma dos dados que estao na coluna 4.

Abracooo…

voce vai ter que fazer na mao
algo do tipo:

double soma = 0;
for (int i=0; i<jTable1.getColumnCount(); i++) {
Double valor = (Double)jTable1.getValueAt(i, 4);
soma+=valor.doubleValue();
}
jTextField3.setText(String.valueOf(soma));

Vlwwww Renatu…
Funcionou certinhhhhhooo…

Achei que tivesse algum metodo sum… sei la…
vlwww…
Abracoo

Renatu
Estou com um pequeno problema. Como faco para somar os dados que estao em uma coluna da minha jTable quando ela é aberta.
e dar o resultado total final em uma JTextField [ txtvalortotal ]

Se Ajudar segue codigo:

package Relatorio;

import java.awt.event.ActionListener;
import java.sql.SQLException;
import java.util.Date;
import javax.swing.* ;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import utilitarios.conexao;
import javax.swing.text.MaskFormatter;

public class RelaContas extends javax.swing.JFrame
{

MaskFormatter formatodatacada;
private MaskFormatter formatodata;
private MaskFormatter formatocep;
private MaskFormatter formatocnpj;
private MaskFormatter formatoie;
private MaskFormatter formatoccm;
private MaskFormatter formatoddi;
private MaskFormatter formatotelefone;

//COMANDA PRIMEIRO, PROXIMO, ANTERIOR, ULTIMO
int navega = 0 ;

//ORDENA PELO CÓDIGO
String ordenacao =“codigo”;

//ORDENA PELA DATA DE VENCIMENTO
String ordenacao1 =“datavencimento”;
String novo = “n”;

conexao contas;
private ActionListener ActionListener;

public RelaContas()
{
initComponents();
contas = new conexao();
contas.conecta();
contas.executeSQL("select * from Contas order by "+ordenacao1);
try
{
contas.executeSQL(“select * from Contas order by posicaoconta”);
preencher_jtable();
contas.executeSQL(“select * from Contas order by codigo”);
contas.resultset.last();
mostrardados();

}
catch(SQLException erro)
{
JOptionPane.showMessageDialog(null,“BANCO DE DADOS NÃO ENCONTRADO, VERIFIQUE O ERRO”);
}
}
public void mostrardados()
{
//try
{
//MOSTRA DATA NO FORMULÁRIO
Date data = new Date();
String dia = “” + data.getDate();
String mes = “” + String.valueOf(data.getMonth()+1);
String ano = “” + (1900 + data.getYear());
if (Integer.parseInt(dia)<=9)
dia = “0” + dia;
if (Integer.parseInt(mes)<=9)
mes = “0” + mes;
datacada.setText(dia+"/"+mes+"/"+ano);
datacada.setEditable(false);

//MOSTRA HORA NO FORMULÁRIO
Date hora = new Date();
String thora ="" + data.getHours();
String tminuto=""+ data.getMinutes();
String tsegundo=""+ data.getSeconds();
if (Integer.parseInt(tminuto)<=9)
tminuto = “0” + tminuto;
if (Integer.parseInt(tsegundo)<=9)
tsegundo = “0” + tsegundo;
horacada.setText(thora+":"+tminuto+":"+tsegundo);
horacada.setEditable(false);

//DESABILITA O X NO FORMULÁRIO
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

}
}

public void preencher_jtable()
{

DefaultTableCellRenderer esquerda = new DefaultTableCellRenderer();
DefaultTableCellRenderer centro = new DefaultTableCellRenderer();
DefaultTableCellRenderer direita = new DefaultTableCellRenderer();

esquerda.setHorizontalAlignment(SwingConstants.LEFT);
centro.setHorizontalAlignment(SwingConstants.CENTER);
direita.setHorizontalAlignment(SwingConstants.RIGHT);

//CODIGO
jTable.getColumnModel().getColumn(0).setCellRenderer(centro);
//DATAVENCIMENTO
jTable.getColumnModel().getColumn(1).setCellRenderer(centro);
//FORNECEDOR
jTable.getColumnModel().getColumn(2).setCellRenderer(esquerda);
//VALOR
jTable.getColumnModel().getColumn(3).setCellRenderer(direita);
//PISIÇÃO CONTA
jTable.getColumnModel().getColumn(4).setCellRenderer(centro);
//CODIGO DE BARRAS
jTable.getColumnModel().getColumn(5).setCellRenderer(esquerda);

//CODIGO
jTable.getColumnModel().getColumn(0).setPreferredWidth(10);
//DATA VENCIMENTO
jTable.getColumnModel().getColumn(1).setPreferredWidth(20);
//FORNECEDOR
jTable.getColumnModel().getColumn(2).setPreferredWidth(200);
//VALOR
jTable.getColumnModel().getColumn(3).setPreferredWidth(30);
//POSIÇÃO CONTA
jTable.getColumnModel().getColumn(4).setPreferredWidth(30);
//CODIGO DE BARRAS
jTable.getColumnModel().getColumn(5).setPreferredWidth(200);

DefaultTableModel modelo = (DefaultTableModel)jTable.getModel();
modelo.setNumRows(0);
try
{

while(contas.resultset.next())
{
modelo.addRow(new Object[]
{
contas.resultset.getString(“codigo”),
contas.resultset.getString(“datavencimento”),
contas.resultset.getString(“fornecedor”),
contas.resultset.getString(“valor”),
contas.resultset.getString(“posicaoconta”),
contas.resultset.getString(“codigobarras”),

}
);

}

}
catch(SQLException erro)
{
}
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings(“unchecked”)
//
private void initComponents() {

    jPanel3 = new javax.swing.JPanel();
    jLabel14 = new javax.swing.JLabel();
    datacada = new javax.swing.JTextField();
    horacada = new javax.swing.JTextField();
    jPanel1 = new javax.swing.JPanel();
    btsair = new javax.swing.JButton();
    txtvalortotal = new javax.swing.JTextField();
    Total = new javax.swing.JLabel();
    jScrollPane2 = new javax.swing.JScrollPane();
    jTable = new javax.swing.JTable();

    setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
    setTitle("CRCJ - Assessoria Em Informática");
    setResizable(false);

    jPanel3.setBackground(java.awt.SystemColor.desktop);
    jPanel3.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
    jPanel3.setForeground(new java.awt.Color(255, 255, 255));

    jLabel14.setBackground(new java.awt.Color(0, 255, 0));
    jLabel14.setFont(new java.awt.Font("Haettenschweiler", 0, 24));
    jLabel14.setForeground(new java.awt.Color(255, 255, 255));
    jLabel14.setText("Relatório Das Contas Pagar e Receber");

    datacada.setBackground(java.awt.SystemColor.desktop);
    datacada.setFont(new java.awt.Font("Arial", 0, 16));
    datacada.setForeground(new java.awt.Color(255, 255, 255));
    datacada.setHorizontalAlignment(javax.swing.JTextField.CENTER);

    horacada.setBackground(java.awt.SystemColor.desktop);
    horacada.setFont(new java.awt.Font("Arial", 0, 16));
    horacada.setForeground(new java.awt.Color(255, 255, 255));
    horacada.setHorizontalAlignment(javax.swing.JTextField.CENTER);

    javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
    jPanel3.setLayout(jPanel3Layout);
    jPanel3Layout.setHorizontalGroup(
        jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
            .addContainerGap()
            .addComponent(jLabel14)
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 433, Short.MAX_VALUE)
            .addComponent(datacada, javax.swing.GroupLayout.PREFERRED_SIZE, 107, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addGap(18, 18, 18)
            .addComponent(horacada, javax.swing.GroupLayout.PREFERRED_SIZE, 107, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addGap(21, 21, 21))
    );
    jPanel3Layout.setVerticalGroup(
        jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(jPanel3Layout.createSequentialGroup()
            .addContainerGap(13, Short.MAX_VALUE)
            .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(horacada, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(datacada, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
            .addContainerGap())
        .addGroup(jPanel3Layout.createSequentialGroup()
            .addContainerGap()
            .addComponent(jLabel14)
            .addContainerGap(12, Short.MAX_VALUE))
    );

    jPanel1.setBackground(new java.awt.Color(102, 255, 204));
    jPanel1.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
    jPanel1.setForeground(new java.awt.Color(255, 255, 255));

    btsair.setFont(new java.awt.Font("Tahoma", 1, 10));
    btsair.setText("Sair");
    btsair.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btsairActionPerformed(evt);
        }
    });

    Total.setText("jLabel1");

    javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
    jPanel1.setLayout(jPanel1Layout);
    jPanel1Layout.setHorizontalGroup(
        jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
            .addContainerGap(335, Short.MAX_VALUE)
            .addComponent(Total, javax.swing.GroupLayout.PREFERRED_SIZE, 157, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addGap(69, 69, 69)
            .addComponent(txtvalortotal, javax.swing.GroupLayout.PREFERRED_SIZE, 189, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addGap(118, 118, 118)
            .addComponent(btsair, javax.swing.GroupLayout.PREFERRED_SIZE, 85, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addGap(28, 28, 28))
    );
    jPanel1Layout.setVerticalGroup(
        jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(jPanel1Layout.createSequentialGroup()
            .addContainerGap()
            .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(btsair)
                .addComponent(txtvalortotal, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(Total))
            .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
    );

    jTable.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
    jTable.setModel(new javax.swing.table.DefaultTableModel(
        new Object [][] {
            {null, null, null, null, null, null},
            {null, null, null, null, null, null},
            {null, null, null, null, null, null},
            {null, null, null, null, null, null},
            {null, null, null, null, null, null}
        },
        new String [] {
            "Código", "Data Vencimento", "Fornecedor", "Valor", "Posição da Conta", "Código de Barras"
        }
    ) {
        boolean[] canEdit = new boolean [] {
            false, false, false, false, false, false
        };

        public boolean isCellEditable(int rowIndex, int columnIndex) {
            return canEdit [columnIndex];
        }
    });
    jTable.getTableHeader().setReorderingAllowed(false);
    jScrollPane2.setViewportView(jTable);
    jTable.getColumnModel().getColumn(0).setResizable(false);
    jTable.getColumnModel().getColumn(1).setResizable(false);
    jTable.getColumnModel().getColumn(2).setResizable(false);
    jTable.getColumnModel().getColumn(3).setResizable(false);
    jTable.getColumnModel().getColumn(4).setResizable(false);
    jTable.getColumnModel().getColumn(5).setResizable(false);

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        .addGroup(layout.createSequentialGroup()
            .addContainerGap()
            .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 965, Short.MAX_VALUE)
            .addContainerGap())
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addGap(1, 1, 1)
            .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
            .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 533, Short.MAX_VALUE)
            .addContainerGap())
    );

    java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
    setBounds((screenSize.width-993)/2, (screenSize.height-685)/2, 993, 685);
}// </editor-fold>

private void btsairActionPerformed(java.awt.event.ActionEvent evt) {                                       
    // TODO add your handling code here:

//if(javax.swing.JOptionPane.showConfirmDialog(null,“DESEJA FECHAR ESTE FORMULÁRIO ?”,“SAIR”,javax.swing.JOptionPane.YES_NO_OPTION )==0)
//this.dispose();
//new Cadastro.CadastroDeContas().show();
Object[] options =
{
“Sim”, “Não”
};
int i = JOptionPane.showOptionDialog(null,
“DESEJA FECHAR ESTE FORMULÁRIO ?”,“SAIR”,
JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null,
options, options[0]);
if (i == JOptionPane.YES_OPTION)
{
//System.exit(0);
this.dispose();
new Cadastro.CadastroDeContas().show();
}
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new RelaContas().setVisible(true);
        }
    });
}

// Variables declaration - do not modify
private javax.swing.JLabel Total;
private javax.swing.JButton btsair;
private javax.swing.JTextField datacada;
private javax.swing.JTextField horacada;
private javax.swing.JLabel jLabel14;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel3;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTable jTable;
private javax.swing.JTextField txtvalortotal;
// End of variables declaration

}

[quote=rodbaterasbeat]Vlwwww Renatu…
Funcionou certinhhhhhooo…

Achei que tivesse algum metodo sum… sei la…
vlwww…
Abracoo[/quote]

Olá, CONSEGUISTES FAZER FUNCIONAR ESSE TOTAL DE COLUNA
Queres postar o código para compartilhar. agradeço.