Como reexecutar uma thread?

6 respostas
T

Ola pessoal, fiz uma JFrame para sorteio que percorre os nomes no banco de dados. Quando executo ele 1x nao consigo reexecutá-lo, tenho que fechar e abrir de novo o programa.

public class AtivaBotao implements ActionListener{
		Conexao con = new Conexao();		
		Runnable runnable = new Runnable() {
			
			@Override
			public void run() {
				try{
					for(int i=10; i > 0; i--){
						lbGanhador.setText(con.conectar());
						Thread.sleep(500);
					}
				}catch(InterruptedException e){
					e.printStackTrace();
				}	
			}
		};
		
		Thread thread = new Thread(runnable);
		
		@Override	
		public void actionPerformed(ActionEvent arg0) {	
				try{
					thread.start();
				}catch(Exception er){
					er.printStackTrace();
				}				
		}			
	}
}

6 Respostas

ivandasilva

Vc tá usando thread para percorrer de tempos em tempos ?
Por que Thread ?

T

Por que se nao ele nao atualiza o JLabel… mas consegui resolver aqui declarei a thread dentro do try do actionPerformed… só nao sei se é o correta a se fazer.

L

@Override public void actionPerformed(ActionEvent arg0) { try { if(thread.isAlive()){ //TODO... }else{ thread = new Thread(runnable); thread.start(); } } catch (Exception er) { er.printStackTrace(); } }

T

poxa nao era o que eu queria… ele tah iniciando uma nova thread a cada clique.

ViniGodoy

Não tem como reexecutar uma thread, você deve criar uma nova thread.

O que pode ser reexecutado é o Runnable. Basta grava-lo numa propriedade ao invés de uma variável.

T

Vlwwwww galera deu certo aqui. mto obrigado a todos !

Criado 4 de abril de 2013
Ultima resposta 4 de abr. de 2013
Respostas 6
Participantes 4