jTable - Soma de dados da coluna

4 respostas
R

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…

4 Respostas

_Renatu

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

Vlwwww Renatu…
Funcionou certinhhhhhooo…

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

C

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)

<a href="//this.dispose">//this.dispose</a>();

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

{

<a href="//System.exit">//System.exit</a>(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

}

Nelsonjahn

rodbaterasbeat:
Vlwwww Renatu…
Funcionou certinhhhhhooo…

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

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

Criado 22 de novembro de 2007
Ultima resposta 20 de mar. de 2012
Respostas 4
Participantes 4