Problemas com JTable

1 resposta
java
E

Boa noite, estou com um problema em um JTable. Fiz um método na DAO que calcula um total de produtos consumidos, este método é chamado na Tela no botão cadastrar, toda vez que cadastro um consumo preciso que vá calculando a quantidade de acordo com o valor do produto e mostra um valor total. Na verdade ele está calculando porém apenas no primeiro cadastro, caso eu cadastre outros consumos, o que me mostra na tela é apenas o primeiro consumo, caso eu delete outros e deixe apenas o consumo da primeira linha da tabela é somente este que será visualizado. Abaixo o código do método. Por favor me ajudem!!! Abaixo meu método da tela Consumo:

`void mostrar(String buscar){

consumoDAO.mostra(buscar);     
    lblTotalConsumo.setText("Valor R$. " + consumoDAO.totalConsumo);
    
}	`

Método da DAO:

`public Object mostra(String buscar) {

Consumo consumoVO = new Consumo();
    ConsumoDAO consumoDAO = new ConsumoDAO();
    ModeloTabelaConsumo modelo = new ModeloTabelaConsumo();
    totalConsumo = 0.0;
    
    String sql = ("SELECT c.codConsumo, c.codHospedagem, c.codProduto, p.nomeProduto, " +
                  " c.quantidade, c.valorConsumo, c.status " +
                  " from consumo c " +
                  " INNER JOIN produto  p ON c.codProduto = p.codProduto " +
                   "INNER JOIN hospedagem AS H ON H.codHospedagem = C.codHospedagem " 
                 + " WHERE c.codHospedagem = " + buscar + " order by c.codConsumo ");
  
    getBanco().abrir();
    try {
        Statement stm = getBanco().getConexao().createStatement();
        //Faz a leitura no banco
        ResultSet rs = stm.executeQuery(sql);

        if (rs.next() == true) { //Achou
            consumoVO = new Consumo();
            consumoVO.setCodConsumo(rs.getInt("codConsumo"));
            consumoVO.setCodHospedagem(rs.getInt("codHospedagem"));
            consumoVO.setCodProduto(rs.getInt("codProduto"));
            consumoVO.setCodProduto(rs.getInt("nomeProduto"));                               
            consumoVO.setQuantidade(rs.getInt("quantidade"));
            consumoVO.setValorConsumo(rs.getDouble("valorConsumo"));
            consumoVO.setStatus(rs.getString("status"));
                          
            totalConsumo = totalConsumo + (rs.getInt("quantidade") * rs.getDouble("valorConsumo"));
            
           } 
        
    } catch (SQLException ex) {
        ex.printStackTrace();
    }
    return consumoVO;
}
`

1 Resposta

E

Pelo que dá pra entender pelo que você explica ele só é chamado quando você cadastra por isso sempre mostra o último cadastrado isso que eu entendi, ou então sua váriavel totalConsumo deve ser declarada como uma váriavel global se não sempre que chamar ela perde o valor anterior verifica isso.

Criado 21 de maio de 2016
Ultima resposta 22 de mai. de 2016
Respostas 1
Participantes 2