Galera, eu tô com um probleminha pra parar a execução de uma thread.
Na minha aplicação, eu tenho um ToggleButton. Quando ativo, a thread funciona, quando inativo ele desliga a thread.
Só, que na hora que verifico o botão e ele está inativo, a thread não para.
O código está assim.
jToggleButton.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent e) {
System.out.println("itemStateChanged()");
Compara a = new Compara(y) //Esse y é uma string que estou passando.
boolean x = jToggleButton.isSelected();
if(boolean=true)
new Thread(a).start();
else
new Thread(a).stop();
}
});
O problema está dentro do else…se alguém puder me ajudar…
Meu…tu tem que mandar parar a Thread que esta rodando né…tu ta mandando parar um new Thread() =/
Sabe usar wait() e notify()? Isso iria facilitar a tua vida para trabalhar com Threads (pelo menos eu acho =|)
E tp…tu tem que toma cuidado…ta estranho isso que tu ta fazendo…if (condição), a Thread.start else Thread.stop…tu tem que dá start nela UMA vez só…e depois tu só vai verificar se está na hora de parar =)
Se tu não entendeu nada do que eu falei…diz ae hehehe
Abraço
q atribuição eh essa no seu if?
É…nem tinha visto isso!
Ta errado tbm…
Ou tu faz if (boolean) ou if (boolean == true)
O if faz a verificação se o botão está selecionado ou não.
Estava (boolean=true) pq eu q digitei errado o código aqui. O certo é a variável q eu declarei como booleana, pegando o valor do ToggleButton e comparando no if.
O Problema da Thread foi resolvido tb.
a modificação foi a seguinte:
Thread P = new Compara();
if(...)
P.start()
else
P.stop();
E mdtorbis, a verificação tem de ser assim mesmo. A minha thread tem um laço que só vai parar com uma determinada condição. Colocando este botão e trabalhando desta forma, eu faço ela parar sem estabelecer esta condição. Seria um liga e desliga. Se eu quiser verificar, ativo o botão, se não deixo desativado. Eu entendi o que vc disse. Eu que errei uma barbaridade na hora de colocar o código. Eu fui escrevendo ele de cabeça…não tava com ele na minha frente…
Desculpem a falha no primeiro código.
Mas valew aí pela atenção!!
Quié isso meu…
Se tu conseguiu resolver teu problema, nós já estamos felizes =]