Thread

3 respostas
gqferreira

Olá pessoal!

O problema é o seguinte:

Tenho uma classe chamada Relogio, essa classe extende a Runnable e contem o metodo run da interface. Dentro desse run eu dou um while(true) com um sleep de 100 milissegundos. A função disso é fazer um cronometro.
Tenho outros tres frames, todos eles tem um label chamado lbCronometro.

Como faço para que os tres frames usem a mesma classe para alterar o valor de seus labels? Lembrando: A mesma classe relogio.

O metodo run da thread nao retorna nada, então o jeito seria deixar os labels estaticos e modifica-los de dentro da thread? Mas como a thread irá saber quem a chamou?

Vlw pessoal :thumbup: :thumbup: :thumbup:

3 Respostas

ViniGodoy

Modo 1:
Crie um List<JLabel> dentro de sua classe da thread.
Adicione ambas as labels na classe;
Atualize todas as labels do list.

Modo 2:

Crie uma interface TickListener para sua thread, com o método tick();

Crie um List<TickListener> na sua classe de cronometro;

Faça ambas as classes que contém o label implementarem TickListener;

Registre as duas classes como listeners da sua thread;

No método tick() delas, atualize a JLabel.

O modo 2 é mais longo, mas permite maior reuso da sua classe da thread.

Quando o assunto é threads, esqueça que"static" existe.

gqferreira

:shock: :shock: Nossa vini… não sou fera como vc… poderia me exemplificar ?

ViniGodoy

Pode postar sua classe da thread?

Criado 12 de fevereiro de 2010
Ultima resposta 13 de fev. de 2010
Respostas 3
Participantes 2