Testar variavel

4 respostas
N

Ola galera.
Eu quero ficar verificando o status de uma flag dentro de uma classe como abaixo
public class NewJFrame extends javax.swing.JFrame {
sem travar a aplicação.
Não estou conseguindo usar thread na classe e acho que é porque eu usei extends javax.swing.JFrame e não extends Thread.

Valeu!!

4 Respostas

ViniGodoy

Frame é uma janela. Thread é uma classe que, a princípio, nem sequer deveria ser estendida. Mas sua responsabilidade é criar uma nova thread, que rodará o código que estiver num Runnable.

Se você quer monitorar uma variável de uma janela, crie um Runnable como uma inner class interna de sua janela. Ele terá acesso a essa variável. Então, dispare uma thread que o monitore.

Se essa variável for de um tipo primitivo, não esqueça de declara-la como volatile.

Se não for, não esqueça que você só poderá modifica-la em blocos sincronizados.

Isso pq o Swing e sua thread são threads diferentes.

N

Valeu brother!!
Resolvi o esquema…mas surgiu outra duvida.

Thread thread1 = new Thread (this);
thread1.start();

Por que não funciona sem o this?

Valeu!!

ViniGodoy

Você tem que passar no construtor da classe Thread o Runnable que ela executará. No caso, sua própria classe.

Sem isso, a classe tentará executar o run() dela mesmo, que por padrão é vazio (você pode altera-lo por extensão, o que é fortemente desaconselhado).

N

Problema resolvido
Valeu galera.

Criado 11 de junho de 2010
Ultima resposta 15 de jun. de 2010
Respostas 4
Participantes 2