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.
L
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));}}});
L
Lags
No botão só chamei o método.
V
ViniGodoy
Já tentou colocar um breakpoint aí?
L
Lags
Botei Breakpoint, ele só consegue entrar onde adicionei ActionListener no botão e não entra no método actionPerformed.
L
Lags
Alguém pode-me dar uma ideia melhor aqui?
L
Lags
Galera ajuda aí estou precisando muito.
V
ViniGodoy
Mas vc tentou colocar o breakpoint dentro do actionlistener, no for, e clicar no botão?
Pq seu código parece certo.
L
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);
V
ViniGodoy
No seu for, não deveria ser getRowCount() no lugar de getColumnCount()? Você vai somar os dados das linhas, não das colunas.
L
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.
L
Lags
Pessoal me ajudem aqui, estou precisando muito.
L
Lags
Vini funcionou sim, era indice a mais.
Outra coisa eu vi um postagem que vc falou sobre evento actionTableModel, para o que serve?
L
Lags
Assunto resolvido
L
Lags
Resolvido
V
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.
L
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
V
ViniGodoy
Faça assim:
Vá no seu primeiro post;
Clique em editar;
Coloque [Resolvido] na frente do assunto;
Clique em enviar.
V
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());
A
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?
A
Anselmo_Nelsonjose4
Eu nao pertendo colocar num lebol nem numa fild eu quer colocar na mesma tabela mas numa outra xoluna
A
Anselmo_Nelsonjose4
Pexoal elhem o codigo.
Void calculadif(){
Int cont =jttabela.getRowCAunt(); float mvd=0, cheq=0;