Somar valor ao clicar no campo da jtable

1 resposta
S

Faço uma consulta no B.D que retorna na minha jtable os valores dos produtos e sua descrição.
Queria que ao clicar em cada produto desejado ele pega o valor e vai somando de acordo com o produto clicado.

eu tentei fazer apenas com o primeiro click e não consegui somar com os demais produtos desejado

private void jTable2MouseClicked(java.awt.event.MouseEvent evt) {                                     


        int linha = jTable2.getSelectedRow();
       
                                                          // aki ele vai pegar a linha clicada e o campo que se encontra o valor
                Object x = jTable2.getValueAt(linha,3);
           double y = (Double)(Object) x;

 
 // aki é para exibir o valor selecionado seja apenas um, ou a soma de todos clicados
        
  jLabel10.setText(String.valueOf(y));

1 Resposta

B

Adiciona um listener para realizar os calculos desejados no click das linhas.

Abaixo segue o código. Caso não tenha entendido, eu lhe explico melhor depois.

OBS: eu coloquei esse código no construtor.

//Cria um DefaultTableModel para pegar a linha selecionada
        final DefaultTableModel modelo = (DefaultTableModel)jTable1.getModel();
        
        //Adiciona um mouseListener para a tabela. 
        jTable1.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                int vlrLinha = 0;
                int vlrLabel = 0;
                int soma = 0;
    
                //Pega o valor da label, caso já tenha algum valor nela
                if(lblteste.getText() != null && !lblteste.getText().equals(""))
                {
                    vlrLabel = Integer.parseInt(lblteste.getText());
                }
 
                //Pega o valor da linha. Alem do codigo abaixo, deve-se realizar tratamentos para verificar se o valor na linha é inteiro.
                vlrLinha = Integer.parseInt(modelo.getValueAt(jTable1.getSelectedRow(), 0).toString());


                soma = vlrLinha + vlrLabel;
                
                //Seta o texto da label com  a soma obtida
                lblteste.setText(String.valueOf(soma));
            }
            });
Criado 3 de agosto de 2010
Ultima resposta 3 de ago. de 2010
Respostas 1
Participantes 2