Eu possuí uma tabela que adiciona |código produto|descrição|Preço|quantidade|ValorTotal| de acordo com os produto que o cliente deseja comprar, porém estou querendo que ele some a coluna valorTotal, setar valor dessa soma JTxtValorTotalDosProdutos. Só que estou com dificuldade em fazer isso.
Desde já agradeço pela atenção de todos.
Você pode criar um botão “Calcular total” e colocar esse código no ActionListener do botão.
Lags
Vini dê uma olhada para mim nesse código ele não esta fazendo nenhuma ação no botão, sabe oque está errado:
privatevoidcalculaTotalProdutos(){//adiciona listenr para o botaoJBtnCalculartotalVenda.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventev){for(inti=0;i<jtProdutos.getColumnCount();i++){if(jtProdutos.getValueAt(i,0).equals(true)){DoublevalorAux=(Double)jtProdutos.getValueAt(i,5);soma+=valorAux.doubleValue();}JTxtValorTotalProdutos.setText(String.valueOf(soma));}}});
Lags
No botão só chamei o método.
ViniGodoy
Já tentou colocar um breakpoint aí?
Lags
Botei Breakpoint, ele só consegue entrar onde adicionei ActionListener no botão e não entra no método actionPerformed.
Lags
Alguém pode-me dar uma ideia melhor aqui?
Lags
Galera ajuda aí estou precisando muito.
ViniGodoy
Mas vc tentou colocar o breakpoint dentro do actionlistener, no for, e clicar no botão?
Pq seu código parece certo.
Lags
Vini fiz isso, só que dá erro na linha que esta em negrito no final do código.
private void calculaTotalProdutos() {
try{
for (int i = 0 ; i < jtProdutos.getColumnCount() ; i++) {
Double valorAux =(Double) jtProdutos.getValueAt(i,5);
soma+= valorAux.doubleValue();
}
JTxtValorTotalProdutos.setText(String.valueOf(soma));
}
catch(Exception e){ JOptionPane.showMessageDialog(null,"Erro ao calcular Total Produtos: "+e.getMessage());
}
}
Dá erro neste linha corta a execução e cai no catch e retorna a mensagem 5>=5 Double valorAux =(Double) jtProdutos.getValueAt(i,5);
ViniGodoy
No seu for, não deveria ser getRowCount() no lugar de getColumnCount()? Você vai somar os dados das linhas, não das colunas.
Lags
Bom dia Vini,
Eu tentei com RowCount, dá mesmo erro quando chega nessa linha.
Provavelmente sua tabela tem 5 colunas. Então, o índice da quinta coluna será 4, não 5. Lembre-se a primeira coluna tem índice 0.
Lags
Pessoal me ajudem aqui, estou precisando muito.
Lags
Vini funcionou sim, era indice a mais.
Outra coisa eu vi um postagem que vc falou sobre evento actionTableModel, para o que serve?
Lags
Assunto resolvido
Lags
Resolvido
ViniGodoy
Estava falando de TableModel.
Na verdade, o ideal é que você não chame diretamente o método getValueAt. Esse método devia ser exclusividade do Java, e só usado na hora de desenhar o JTable. O ideal é que você faça um tablemodel próprio, e esse model tenha um método get, que te retorna a classe que a tabela está desenhando.
Isso não só deixará o código mais simples, rápido e ocupando menos memória, como também evitará casts. Além disso, evita que seu programa tenha que ser modificado caso alguma coluna seja adicionada ou retirada do JTable.
Lags
Eu queria colocar esta questão como resolvido, mas não esta dando certo.
É só colocar [RESOLVIDO] na frente do assunto não é?Pois se for fiz não deu certo
ViniGodoy
Faça assim:
Vá no seu primeiro post;
Clique em editar;
Coloque [Resolvido] na frente do assunto;
Clique em enviar.
vitaaoo
Eu fiz desse jeito e meu sistema continua imprimindo a mensagem Erro ao calcular Total Produtos: null
Obs: Os campos estão preenchidos, não tem nenhum campo vazio na tabela.
Descobri, na verdade o problema era o seguinte … o numero de linhas da tabela era maior que o numero de linhas preenchidas entao, ele sempre pegava valores null.
private String CalculaTotal() {
Double Orcamento = 0.0;
for ( int i = 0; i < jTabExames.getRowCount(); i++){
Orcamento += Double.parseDouble( jTabExames.getValueAt(i, 3).toString());
}
return Orcamento.toString();
}
ei eu coloco
LabelTotal.setText(CalculaTotal());
Anselmo_Nelsonjose4
Alo pesoal to a pasar mal pesso a vossa ajuda. Eu trnho uma tabela com dil preco l quantidade l total gostaria de pegar os dados do coluna preco multiplicar pelos dados da culuna quantidade nas linhas corespondentes como farei isso?
Anselmo_Nelsonjose4
Eu nao pertendo colocar num lebol nem numa fild eu quer colocar na mesma tabela mas numa outra xoluna
Anselmo_Nelsonjose4
Pexoal elhem o codigo.
Void calculadif(){
Int cont =jttabela.getRowCAunt(); float mvd=0, cheq=0;