Re: Timer

Olá!

No olhei o código com detalhes, afinal, se ele funca pelo menos uma vez isso quer dizer que ele funca!

O problema provavelmente está em coutra parte do codigo. Uma vez que vc instancia uma Thead, ela só poderá ser executada uma vez, ou seja, vc só poderá chamar o método start apenas uma vez! Se vc chamar mais de uma vez deveria ser lançada uma exceção. Se vc não viu essa exceção então provavelmente vc chama o método start da sua Thread dentro de um bloco try catch, ou pelo menos vc está tratando mau suas exceções!

Quando acontecer o evento que inicia a Timer, certifique de ao menos de criar um novo objeto dele antes de usá-lo!

Errado

Timer timer = new Timer();//vc sempre deve instanciar um novo timer
public void metodoQualquer() {
   timer.start();
}

Certo

Timer timer = null;
public void metodoQualquer() {
   timer = new Timer(); //vc sempre deve instanciar um novo timer
   timer.start();
}

Abraços!
Thiago

Galera,

Estou precisando criar um timer que funcione da seguinte maneira:
quando um usuário digita um texto no jTextField e aperta <enter> eu gostaria que desativasse este campo por 2 segundos. Mas não estou conseguindo fazer isso com o meu timer, está funcionando apenas uma vez.

public class Timer extends Thread
	{
	   	 
	    public void run()
	    {
	       if ( true ){
	          try{ 
	          	 jTextField.setEnabled(false);
	          	 Thread.sleep(2000);
	          	 jTextField.setEnabled(true);          	 
	          }
	          catch ( Exception ex ){
	          	  ex.printStackTrace(); 
	          }
	       }
	    }
	 }

Já tentei start e stop, mas nada deu certo. Alguem pode me ajudar? :smiley:

Thiago,

Muito Obrigado, era isso mesmo. Eu estava achando que ia precisar usar um Timer Task para resolver este problema, mas assim ficou bem fácil.

Valeu, :thumbup: