[RESOLVIDO] Problemas com List

14 respostas
dragondepth

Bom, eu estou fazendo um programa que seria tipo uma folha de pagamento. Entao ao inserir todos os funcionários, quero que ao clicar num botão, some o valor de todos os salários e mostre o resultado.
Mas o que estou fazendo parece nao estar dando mt certo hehehehe.
O que está acontecendo é que se eu coloco uma linha, ele mostra o resultado normal, se coloco duas linhas no jtable, ele ja vai dobrar o primeiro valor e somar com o segundo. Se eu colocar uma terceira linha, ele vai somar 3 vezes o valor da primeira, 2 vezes o da segunda e uma da terceira linha e assim por diante... E não é bem isso que eu queria.
Alguém pode me ajudar?

Ai vai o código:

salariosFinais = new ArrayList<Double>();
					numeroDeLinhas = modelo.getRowCount();
					for (i=0; i<numeroDeLinhas; i++){
						 String valores =  modelo.getValueAt(i, 3).toString();
						 Double a = Double.parseDouble(valores);
						 salariosFinais.add(a);
							total = total + salariosFinais.get(i);
					     		
						      
						 
					}
					
					
					JOptionPane.showMessageDialog(null, "Saldo Final: " + total );
					}

Muito obrigado desde já!

14 Respostas

andreiribas

cara nem fiquei vendo muito o código, mas vou dar umas dicas…
primeiramente, não vi você inicializando o valor da variável total em nenhum lugar, por isso;

//antes do for
double total = 0D;

e no laço for, que tal trocar o trecho

//dentro do for total = total + salariosFinais.get(i);
por

total = total + a;
dragondepth

Desculpe, nao colei o código inteiro pq ta meio bagunçado ainda. Mas eu havia declaro no código o total sim. Fiz essa mudança q vc falou mas continua no mesmo problema.
De qualquer forma, mt obrigado pela ajuda.
Alguém ainda pode ajudar??

dragondepth

Por favor, mais ninguém pode ajudar??
Preciso muito resolver isso e não estou conseguindo fazer sozinho.

Mantu

Não vejo muita necessidade de utilizar um List neste caso. Tente fazer algo mais simples, como sugerido pelo colega andreiribas acima:

numeroDeLinhas = modelo.getRowCount();
double total = 0.0;
for (i=0; i<numeroDeLinhas; i++){
	String valores =  modelo.getValueAt(i, 3).toString();
	Double a = Double.parseDouble(valores);
	total += a;
}
JOptionPane.showMessageDialog(null, "Saldo Final: " + total );

verifique também se por acaso a variável total é na verdade um campo. Se for, você deve sempre zerá-la antes de entrar no “for” acima.

R

estava olhando o código e pelo que está aí… parece estar certo… acho que precisamos de mais informações sobre o código pra te ajudar… talvez se vc colocasse todo o método que roda quando vc clica no botao ficasse mais facil para nós…

dragondepth

Eu fiz como o mantu falou e resolveu. =)

Nossa, era algo tão simples e eu não notei.
Agora funcioou!!
Muito obrigado mesmo!!

R

edit: n tinha visto o post do Mantu.

dragondepth

Com aquele trecho mesmo resolveu…
Até agora não sei exatamente o que eu fiz de errado, mas a resolução foi mais simples do que eu tava imaginando.

R

Ueh… mas pelo q vi, o que o Mantu colocou foi o mesmo que o andreiribas sugeriu e vc tinha dito que nao tinha funcionado :shock:
Por isso fiquei procurando outra solução e não achei… e disse que já era pra estar funcionando… :roll:

dragondepth

Pois eh, mas o que eu fiz foi tirar a busca dentro de uma lista que eu estava fazendo.

R

Sugestão do andreiribas:

[quote=andreiribas]cara nem fiquei vendo muito o código, mas vou dar umas dicas…
primeiramente, não vi você inicializando o valor da variável total em nenhum lugar, por isso;

//antes do for
double total = 0D;

e no laço for, que tal trocar o trecho

//dentro do for total = total + salariosFinais.get(i);
por

total = total + a;

Sua resposta:

dragondepth:

Desculpe, nao colei o código inteiro pq ta meio bagunçado ainda. Mas eu havia declaro no código o total sim. Fiz essa mudança q vc falou mas continua no mesmo problema.

Sugestão do Mantu igual à do andreiribas, porém com outras palavras:

Sua resposta:

hehehe

dragondepth

Desculpa!!! uheauhaeuhaehuaehuaeuhae
Não me crucifique!!! É que estou numa semana de muitas provas e ainda tenho que fazer um mini projeto em java. To meio atordoado com tudo.
Mas de qualquer maneira, muito obrigado a todos que ajudaram. =)

R

hehehe

tranquilo… boas provas :wink:

Mantu

Só espero que ninguém me processe por plágio, hehehehe… Acabei por só ler os posts do OP e não reparei no post do colega andreiribas… Vou editar meu post para ficar mais justo!
Foi mal, galera! :mrgreen:

Criado 3 de julho de 2007
Ultima resposta 3 de jul. de 2007
Respostas 14
Participantes 4