Somando quantos itens foram adicionados jtable vendas

Boa tarde pessoal, sou novo aqui no forum, estou com dificuldades em somar quantos itens o usuário adicionou a uma venda na jtbale e trazer este total para um jtextfield.
Segue abaixo o código do formulário Vendas.

package Tela;

import Conexao.ConexaoBD;
import ModeloBeans.BeansVendaCaixa;
import ModeloBeans.Utilidades;
import ModeloDao.DaoVendaCaixa;
import ModeloDao.PreencherTabela;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;

public class VendaCaixa extends javax.swing.JDialog {

BeansVendaCaixa mod = new BeansVendaCaixa();
DaoVendaCaixa addItem = new DaoVendaCaixa();
ConexaoBD conecta = new ConexaoBD();

int flag = 1;    
int IDvenda;

float PrecoProduto;

float Total;
private PesquisarClientes pesquisarClientes;
private PesquisarProdutos pesquisarProdutos;
private ParcelamentoVenda parcelamento;

private int IdVenda;
private String Data;
private float Valor;


/**
 * Creates new form VendaCaixa
 */
public VendaCaixa(javax.swing.JDialog parent, boolean modal) {
    super(parent, modal);
    initComponents();  
  
    
    preencherProdutos();
    this.pesquisarClientes = new PesquisarClientes(this, true);     
    this.pesquisarProdutos = new PesquisarProdutos(this, true);    
    this.parcelamento = new ParcelamentoVenda(this, true);    
    jTextFieldQtdeItens.setText("0");
           
    SimpleDateFormat DF = new SimpleDateFormat("dd/MM/yyyy");
    Date hoje = new Date();
    jFormattedTextFieldData.setText(DF.format(hoje));
    
    
}

    public void preencherProdutos() {
    conecta.conexao();
    conecta.executaSQL("select *from produtos order by descricao_produto");
    try {
        conecta.rs.first();
        //jComboBoxProdutos.removeAllItems();
        do{
            //jComboBoxProdutos.addItem(conecta.rs.getString("descricao_produto"));                
        }while(conecta.rs.next());
    } catch (SQLException ex) {
        JOptionPane.showMessageDialog(rootPane, "Erro ao preencher a lista de Produtos!"+ex);
    }
    
    conecta.desconexao();

}     

public void preencherTabelaItensVenda(String Sql) {
    ArrayList dados = new ArrayList();
    String [] colunas = new String [] {"Itens","ID Prod.","Descrição","Qtde","Preço","Sub Total"}; 
    conecta.conexao();
    conecta.executaSQL(Sql);
    
    try{
        conecta.rs.first();
        do{
            float ValorProduto = conecta.rs.getFloat("precovenda_produto");
            int QtdVendida = conecta.rs.getInt("qtde_produto");
            //int Itens = conecta.rs.getInt("qtde_itens");
            dados.add(new Object[] {conecta.rs.getInt("qtde_itens"),conecta.rs.getInt("id_produto"),conecta.rs.getString("descricao_produto"),conecta.rs.getInt("qtde_produto"),conecta.rs.getFloat("precovenda_produto"), ValorProduto*QtdVendida,});                
        }while(conecta.rs.next());                    
    }catch(SQLException ex) {

// Preenchendo a tabela
JOptionPane.showMessageDialog(rootPane, “Erro ao preencher tabela!”+ex);
}
PreencherTabela modelo = new PreencherTabela(dados, colunas);

    jTableItensVenda.setModel(modelo);        
    jTableItensVenda.getColumnModel().getColumn(0).setPreferredWidth(80);
    jTableItensVenda.getColumnModel().getColumn(0).setResizable(false);
    
    jTableItensVenda.getColumnModel().getColumn(1).setPreferredWidth(80);
    jTableItensVenda.getColumnModel().getColumn(1).setResizable(false);
    
    jTableItensVenda.getColumnModel().getColumn(2).setPreferredWidth(400);
    jTableItensVenda.getColumnModel().getColumn(2).setResizable(false);
    
    jTableItensVenda.getColumnModel().getColumn(3).setPreferredWidth(120);
    jTableItensVenda.getColumnModel().getColumn(3).setResizable(false);
    
    jTableItensVenda.getColumnModel().getColumn(4).setPreferredWidth(120);
    jTableItensVenda.getColumnModel().getColumn(4).setResizable(false);
                                       
    jTableItensVenda.getTableHeader().setReorderingAllowed(false);
    jTableItensVenda.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    jTableItensVenda.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);      
    SomaProdutos();
    conecta.desconexao();
    
    QtdItens();

}    

    private void QtdItens() {
    int Item = jTableItensVenda.getRowCount();
    int SomaItens = 0;
    
    for(int i = 0; i<Item; i++) {
        SomaItens += Utilidades.objectToInt(jTableItensVenda.getValueAt(i,0));
    }
    
    jTextFieldQtdeItens.setText("" + SomaItens);
}
            
public void SomaProdutos () {
    Total = 0;
    int Qtde = 0;
    float valor = 0;
    conecta.executaSQL("select * from itens_venda inner join produtos on itens_venda.id_produto = produtos.id_produto where id_venda="+IDvenda);
    try {
        //conecta.rs.first();
        while(conecta.rs.next()) {
            Qtde = conecta.rs.getInt("qtde_produto");
            valor = conecta.rs.getFloat("precovenda_produto");
            Total = Total + conecta.rs.getFloat("precovenda_produto")*conecta.rs.getInt("qtde_produto");
        }
        jTextFieldTotal.setText(String.valueOf(Total));
    } catch (SQLException ex) {
        JOptionPane.showMessageDialog(null, "Erro ao efetuar a soma do total da venda!!"+ ex);
    }
}     

public void SomaItens () {
    //nao esta funcionando ainda
    Total = 0;
    int Qtde = 0;
    int item = 0;
    conecta.executaSQL("select * from itens_venda inner join produtos on itens_venda.id_produto = produtos.id_produto where id_vendas="+IDvenda);
    try {
        //conecta.rs.first();
        while(conecta.rs.next()) {
            Qtde = conecta.rs.getInt("qtde_produto");
            //item = conecta.rs.getInt("qtde_itens");
            Total = Total + conecta.rs.getInt("qtde_produto")*conecta.rs.getInt("qtde_itens");
        }
        jTextFieldItem.setText(String.valueOf(Total));
    } catch (SQLException ex) {
        JOptionPane.showMessageDialog(null, "Erro ao efetuar a soma dos itens da venda!!"+ ex);
    }
}
  
private void jButtonBuscarClienteActionPerformed(java.awt.event.ActionEvent evt) {                                                     
            
    this.pesquisarClientes.setVisible(true);
    this.jTextFieldNomeCliente.setText((this.pesquisarClientes.getCliente()));
    
    //jComboBoxProdutos.setEnabled(true);
    //jTextFieldQtdeProdutos.setEnabled(true);      
    jTextFieldNomeCliente.setEnabled(false);
    jButtonBuscarProduto.setEnabled(true);        
    
}                                                    

private void jButtonBuscarProdutoActionPerformed(java.awt.event.ActionEvent evt) {                                                     
    this.pesquisarProdutos.setVisible(true);
    
    this.jTextFieldIDProduto.setText((this.pesquisarProdutos.getIdProduto()));
    this.jTextFieldProduto.setText((this.pesquisarProdutos.getProduto()));
    this.jTextFieldPrecoProduto.setText((this.pesquisarProdutos.getPrecoProduto()));
    this.jTextFieldSubTotal.setText((this.pesquisarProdutos.getPrecoProduto()));
            
    //jComboBoxProdutos.setEnabled(true);
    
    jTextFieldProduto.setEnabled(false);
    jTextFieldQtdeProdutos.setEnabled(true);
    jTextFieldQtdeProdutos.setText("1");
    jTextFieldQtdeProdutos.requestFocus();
    //jTextFieldProduto.setText("");
   
    jButtonIncluir.setEnabled(true);
    
}                                                    

private void jTextFieldQtdeProdutosKeyReleased(java.awt.event.KeyEvent evt) {                                                   
    float subTotal;
    subTotal = Float.valueOf(jTextFieldPrecoProduto.getText())*Integer.parseInt(jTextFieldQtdeProdutos.getText());
    jTextFieldSubTotal.setText(String.valueOf(subTotal));
}                                                  

private void jButtonIncluirActionPerformed(java.awt.event.ActionEvent evt) {                                               
    try {
        int idvenda;
        int qtde = 0;
        
        conecta.conexao();
        conecta.executaSQL("select * from produtos where descricao_produto='"+jTextFieldProduto.getText()+"'");
        conecta.rs.first();
        qtde = conecta.rs.getInt("qtdeatual_produto");
        if (qtde >= Integer.parseInt(jTextFieldQtdeProdutos.getText())) {    
            
       //mod.setQtdeItens(Integer.parseInt(jTextFieldIDProduto.getText()));    
        
        mod.setIdProduto(Integer.parseInt(jTextFieldIDProduto.getText()));    
        mod.setProduto(jTextFieldProduto.getText());
        mod.setQtdeProduto(Integer.parseInt(jTextFieldQtdeProdutos.getText()));
        mod.setPrecoProduto(Float.valueOf(jTextFieldPrecoProduto.getText()));
        mod.setTotalProduto(Float.valueOf(jTextFieldSubTotal.getText()));
        mod.setIdVenda(IDvenda);          
        
        //jTextFieldID.setText(String.valueOf(conecta.rs.getInt("id_venda")));           
                     
        addItem.AdicionaItem(mod);
                    
        preencherTabelaItensVenda("select * from produtos inner join itens_venda"
                + " on produtos.id_produto = itens_venda.id_produto inner join vendas"
                + " on vendas.id_vendas = itens_venda.id_venda where vendas.id_vendas="+IDvenda);
                   
        }else{
            JOptionPane.showMessageDialog(rootPane, "Não hã quantidade disponivel no estoque deste produto!");
        }
        
        //Total = Total + Float.parseFloat(jTextFieldPrecoProduto.getText())*Integer.parseInt(jTextFieldQtdeProdutos.getText());
        //jTextFieldTotal.setText(String.valueOf(Total));
        
        jTextFieldIDProduto.setText("");
        jTextFieldProduto.setText("");
        //jTextFieldNomeCliente.setText("");
        jTextFieldQtdeProdutos.setText("");
        jTextFieldPrecoProduto.setText("");
        jTextFieldSubTotal.setText("");
        jTextFieldItem.setEnabled(true);
        jComboBoxPagamento.setEnabled(true);
        jTextFieldQtdeProdutos.setEnabled(false);
                    
        //Inserindo quantidade de itens
                   
        //jTextFieldID.setText(String.valueOf(conecta.rs.getInt("id_venda")));           
        
    } catch (SQLException ex) {
        //JOptionPane.showMessageDialog(rootPane, "Erro ao pesquisar a quantidade!"+ ex);
    }
    
    jTableItensVenda.setEnabled(true);
    
    jButtonDeletarItem.setEnabled(true);
    jButtonDesconto.setEnabled(true);
    jButtonFinalizar.setEnabled(true);
    jButtonCancelar.setEnabled(true);
    jButtonConcluirDepois.setEnabled(true);
    
    
    //QtdItens();
    
    
}                                              

private void jTextFieldQtdeProdutosFocusGained(java.awt.event.FocusEvent evt) {                                                   
    /*float subTotal;
    subTotal = Float.valueOf(jTextFieldPrecoProduto.getText())*Integer.parseInt(jTextFieldQtdeProdutos.getText());
    jTextFieldSubTotal.setText(String.valueOf(subTotal));*/
}                                                  

private void jButtonFinalizarActionPerformed(java.awt.event.ActionEvent evt) {                                                 
    if(jComboBoxPagamento.getSelectedItem().equals("A vista")) {
    mod.setIdVenda(IDvenda);
    mod.setCliente(jTextFieldNomeCliente.getText());
    mod.setDataVenda(jFormattedTextFieldData.getText());
    mod.setValorVenda(Float.parseFloat(jTextFieldTotal.getText()));
    mod.setFormaPagto((String)jComboBoxPagamento.getSelectedItem());
    addItem.FinalizarVenda(mod);
    
    jTextFieldNomeCliente.setText("");        
    jTextFieldQtdeItens.setText("");
    jTextFieldTotal.setText("");
    
    jTextFieldProduto.setEnabled(false);
    jButtonBuscarProduto.setEnabled(false);
    jTextFieldQtdeProdutos.setEnabled(false);
    jButtonIncluir.setEnabled(false);
    //jTableItensVenda.setEnabled(false);
    jTableItensVenda.setVisible(false);
    jButtonDeletarItem.setEnabled(false);
    jButtonDesconto.setEnabled(false);
    jButtonFinalizar.setEnabled(false);
    jButtonCancelar.setEnabled(false);
    jButtonConcluirDepois.setEnabled(false);
    
    //dispose();
    }else {
    mod.setIdVenda(IDvenda);
    mod.setCliente(jTextFieldNomeCliente.getText());
    mod.setDataVenda(jFormattedTextFieldData.getText());
    mod.setValorVenda(Float.parseFloat(jTextFieldTotal.getText()));
    mod.setFormaPagto((String)jComboBoxPagamento.getSelectedItem());
    addItem.FinalizarVenda(mod);
    
    jTextFieldNomeCliente.setText("");        
    jTextFieldQtdeItens.setText("");
    jTextFieldTotal.setText("");
    
    jTextFieldProduto.setEnabled(false);
    jButtonBuscarProduto.setEnabled(false);
    jTextFieldQtdeProdutos.setEnabled(false);
    jButtonIncluir.setEnabled(false);
    //jTableItensVenda.setEnabled(false);
    jTableItensVenda.setVisible(false);
    jButtonDeletarItem.setEnabled(false);
    jButtonDesconto.setEnabled(false);
    jButtonFinalizar.setEnabled(false);
    jButtonCancelar.setEnabled(false);
    jButtonConcluirDepois.setEnabled(false);    
            
    this.parcelamento.setVisible(true);       
                  
    this.IdVenda = Integer.parseInt(this.jTextFieldID.getText());
    this.Data = (this.jFormattedTextFieldData.getText());
    this.Valor = Float.parseFloat(this.jTextFieldTotal.getText());
              
    //ParcelamentoVenda frm = new ParcelamentoVenda(IDvenda);
    //this.jTextFieldNomeCliente.setText((this.pesquisarClientes.getCliente()));
        
    }
    
}                                                

private void jButtonCancelarActionPerformed(java.awt.event.ActionEvent evt) {                                                
    addItem.CancelarVenda();
    dispose();
}                                               

private void jButtonDeletarItemActionPerformed(java.awt.event.ActionEvent evt) {                                                   
    mod.setItemDeletado(Integer.parseInt(jTextFieldItem.getText()));
    addItem.ExcluirItem(mod);
    preencherTabelaItensVenda("select * from produtos inner join itens_venda"
                + " on produtos.id_produto = itens_venda.id_produto inner join vendas"
                + " on vendas.id_vendas = itens_venda.id_venda where vendas.id_vendas="+IDvenda);
    
    
    jTextFieldItem.setText("");
               
}                                                  

private void jTableItensVendaMouseClicked(java.awt.event.MouseEvent evt) {                                              
    String id_produto = "" + jTableItensVenda.getValueAt(jTableItensVenda.getSelectedRow(), 1);
    conecta.conexao();
    conecta.executaSQL("select *from itens_venda where id_produto = '"+ id_produto + "'");
    try {
    conecta.rs.first();
    jTextFieldItem.setText(String.valueOf(conecta.rs.getInt("id_produto")));
     }catch (SQLException ex) {
       JOptionPane.showMessageDialog(null, "Erro ao selecionar item!"+ex);
    }
    
}                                             

    private void jButtonBuscarCliente1ActionPerformed(java.awt.event.ActionEvent evt) {                                                      
    conecta.conexao();
    try {
        PreparedStatement pst = conecta.Con.prepareStatement("insert into vendas (valor_vendas)values (?)");
        pst.setFloat(1,0);
        pst.execute();
        
        conecta.executaSQL("select * from vendas");
        conecta.rs.last();
        IDvenda = conecta.rs.getInt("id_vendas");
        
        jTextFieldID.setText(String.valueOf(conecta.rs.getInt("id_vendas")));
        
    } catch (SQLException ex) {
        JOptionPane.showMessageDialog(rootPane, "Não foi possivel inserir esta venda"+ ex);
    }
           
    
    jButtonBuscarCliente.setEnabled(true);
    jButtonCancelar.setEnabled(true);
    
}                                                     

public int getIdVenda() {
    return IdVenda;
}

public void setIdVenda(int IdVenda) {
    this.IdVenda = IdVenda;
}

public String getData() {
    return Data;
}

public void setData(String Data) {
    this.Data = Data;
}

public float getValor() {
    return Valor;
}

public void setValor(float Valor) {
    this.Valor = Valor;
}



}

Tente ser mais específico, qual a sua dificuldade?
Ou ao menos apontar no código onde vc quer fazer isso ou até em que momento vc quer q apareça essa quantidade.
Da forma q escreveu o post parece q vc quer que alguém faça pra vc, mas isso vai ser bem improvável de acontecer.

boa tarde, rodrigo, em primeiro lugar não espero e não quero que ninguém faca para mim. A minha dificuldade e que ao clicar no botão incluir, ele adicione o numero 1 a cada linha nova, na coluna item.

Não entendi isso.
Colocar o valor 1 na coluna do item novo na tabela?
Somar 1 em um campo? qual nome do campo?

Quando clica no botão q método q é executado?

Use os nomes dos objetos pra explicar onde quer fazer algo, fica mais fácil entender.

na minha tabela tenho 6 colunas.
A coluna 1 itens, a coluna 2 id do produto, a coluna 3 descrição, a coluna 4 quantidade, a coluna 5 preço, a coluna 6 subtotal.

Quando clica no botão incluir ele pega os dados das jtextfield id do produto, descrição do produto, quantidade, preço, e multiplica o preço do produto pela quantidade vendida. e insere estes dados na jtable e tambem no bd.

eu quero que ao clicar no botao incluir, ele continue inserindo esses dados pegos dos jtextfields, e insira quantidade 1 na coluna itens, a cada novo produto inserido na jtable.

Está usando DefaultTableModel ou um TableModel próprio?

Table propria.

Se tem uma table model própria, tem uma List ou um array com os elementos, que correspondem a cada linha da tabela, certo? Se tem isso, já tem a quantidade de itens existentes na tabela.
Não é essa a dúvida?

o item ja existe, e é adicionado na jtable, mas todos os produtos que sao adicionados a venda, sao adicionados como zero no campo item, e eu quero que ele insira como 1 no campo item, em todo produto adicionado.

O valor aparenta estar vindo dai. Verifique o valor deste campo.
A melhor coisa é vc debugar pra descobrir oq se passa.

verifiquei no codigo do botao incluir onde existe os mods, e nao exista esta linha, e na função do botao incluir ele insere os dados que ele pega dos jtextfield, e para o campo item eu nao criei nenhum jtextfield, pois quero que seja automatico ele inserir o numero 1 no campo item a cada produto adicionado.

Q?
Esta linha está no código q vc postou. Se vc já mexeu no código e n tem mais posta novamente.
O fato de tirar a linha n resolve o problema, vc ainda precisa q algum lugar informe o valor 1.
Outra coisa é q vc tem um campo texto para quantidade jTextFieldQtdeProdutos de onde supostamente vem o valor.

Segue o código do botão incluir

private void jButtonIncluirActionPerformed(java.awt.event.ActionEvent evt) {
try {
int idvenda;
int qtde = 0;

        conecta.conexao();
        conecta.executaSQL("select * from produtos where descricao_produto='"+jTextFieldProduto.getText()+"'");
        conecta.rs.first();
        qtde = conecta.rs.getInt("qtdeatual_produto");
        if (qtde >= Integer.parseInt(jTextFieldQtdeProdutos.getText())) {    
                              
        mod.setIdProduto(Integer.parseInt(jTextFieldIDProduto.getText()));    
        mod.setProduto(jTextFieldProduto.getText());
        mod.setQtdeProduto(Integer.parseInt(jTextFieldQtdeProdutos.getText()));
        mod.setPrecoProduto(Float.valueOf(jTextFieldPrecoProduto.getText()));
        mod.setTotalProduto(Float.valueOf(jTextFieldSubTotal.getText()));
        mod.setIdVenda(IDvenda);          
                                            
        addItem.AdicionaItem(mod);
                    
        preencherTabelaItensVenda("select * from produtos inner join itens_venda"
                + " on produtos.id_produto = itens_venda.id_produto inner join vendas"
                + " on vendas.id_vendas = itens_venda.id_venda where vendas.id_vendas="+IDvenda);
                   
        }else{
            JOptionPane.showMessageDialog(rootPane, "Não hã quantidade disponivel no estoque deste produto!");
        }
                              
        jTextFieldIDProduto.setText("");
        jTextFieldProduto.setText("");
        jTextFieldQtdeProdutos.setText("");
        jTextFieldPrecoProduto.setText("");
        jTextFieldSubTotal.setText("");
        jTextFieldItem.setEnabled(true);
        jComboBoxPagamento.setEnabled(true);
        jTextFieldQtdeProdutos.setEnabled(false);
                    
                 
    } catch (SQLException ex) {
        //JOptionPane.showMessageDialog(rootPane, "Erro ao pesquisar a quantidade!"+ ex);
    }
    
    jTableItensVenda.setEnabled(true);
    
    jButtonDeletarItem.setEnabled(true);
    jButtonDesconto.setEnabled(true);
    jButtonFinalizar.setEnabled(true);
    jButtonCancelar.setEnabled(true);
    jButtonConcluirDepois.setEnabled(true);
            
}

eu tenho um jtextfield para todos os campos, a quantidade de produtos que o cliente esta comprando, a descrição do produto, o valor do produto, porem eu nao criei um jtextfield para o campo item, eu quero que ele insira o valor 1 sem pegar esse valor em um jtextfield.

mod é o objeto q vai pra tabela certo?

sim.

Qual é o tipo deste objeto e onde vc está instanciando ele?

instanciei no próprio formulário de vendas, como segue abaixo.

public class VendaCaixa extends javax.swing.JDialog {
//CadastroClientes tela = new CadastroClientes();
BeansVendaCaixa mod = new BeansVendaCaixa();
DaoVendaCaixa addItem = new DaoVendaCaixa();
ConexaoBD conecta = new ConexaoBD();

e para inserir no bd eu tenho uma classe, como segue abaixo

public void AdicionaItem (BeansVendaCaixa mod) {
//LocalizarIDProduto(mod.getProduto());
conecta.conexao();
try {
PreparedStatement pst = conecta.Con.prepareStatement(“insert into itens_venda(id_venda,id_produto,qtde_produto)values(?,?,?)”);
pst.setInt(1, mod.getIdVenda());
//pst.setInt(2, IDProduto);
pst.setInt(2, mod.getIdProduto());
pst.setInt(3, mod.getQtdeProduto());
//pst.setInt(4, Itens());
pst.execute();

        int quant = 0;
        int resul = 0;
        conecta.executaSQL("select *from produtos where descricao_produto='"+mod.getProduto()+"'");
        conecta.rs.first();
        quant = conecta.rs.getInt("qtdeatual_produto");
        resul = quant - mod.getQtdeProduto();
        pst = conecta.Con.prepareStatement("update produtos set qtdeatual_produto=? where descricao_produto=?");
        pst.setInt(1, resul);
        pst.setString(2, mod.getProduto());
        pst.execute();         
        
        JOptionPane.showMessageDialog(null, "Produto adicionado com sucesso!");
        
        conecta.desconexao();
        
    } catch (SQLException ex) {
        conecta.desconexao();
        JOptionPane.showMessageDialog(null, "Erro ao realizar a venda:"+ex);
    }
            
}

E pq vc instancia ele globalmente e usa em N lugares? pq o correto é cv criar seus objetos apenas nos lugares onde for usar de modo q c n for compartilhar valores entre chamadas de método ele n tm pq ser global.
Posta o código da classe deste objeto mod.