Thread

5 respostas
N

E ai galera beleza…
fiz um botão em minha aplicação que ao ser apertado ele inicia um thread (obj.start():wink: até ai beleza…
O problema esta que quando eu aperto esse botão de novo o esquema não funciona.A inicialização da thread através do botão só funciona uma vez.

Depois que a thread executar e terminar caso eu queira executa-la de novo como fazer??

Valeu!!

5 Respostas

Andre_Brito

Estranho hein? Onde fica o código da thread? Dentro do evento do botão? Eu fiz um negócio assim:

private void startButtonActionPerformed(ActionEvent e){ Thread t = new Thread(){ public void run(){ for (int i = 0; i < 10; i++) { sitLabel.setText(String.valueOf(i)); try { Thread.sleep(1000); } catch (Exception e) { System.err.println("Deu crap"); } } } }; t.start(); }
E depois dos 10 segundos, se eu apertar de volta ele funciona tranquilamente. O código da sua thread está fora do evento do botão?

N

Eu tenha uma classe (NewJFrame) que contém o evento botão.Abaixo coloquei parte do código!

public class NewJFrame extends javax.swing.JFrame {

Teste rr = new Teste ();//instancia um objeto da classe que contem a thread

public NewJFrame() {

initComponents();        
}
private void jButton16ActionPerformed(java.awt.event.ActionEvent evt) {

rr.start();

}

Tenho outra classe (Teste) que possui a thread e que é instancia da pela classe NewJFrame.

public class Teste extends Thread{

int teste=0;

String usua;
public Teste(){
    
}
public void run(){
     teste = 1;

}

}

walissongpi
Naurjr:
Eu tenha uma classe (NewJFrame) que contém o evento botão.Abaixo coloquei parte do código!
public class NewJFrame extends javax.swing.JFrame {

Teste rr = new Teste ();//instancia um objeto da classe que contem a thread

public NewJFrame() {

        initComponents();        
    }

private void jButton16ActionPerformed(java.awt.event.ActionEvent evt) {
 rr.start();
 }    


Tenho outra classe (Teste) que possui a thread e que é instancia da pela classe NewJFrame. 

public class Teste extends Thread{
    int teste=0;
    String usua;

    public Teste(){
        
    }
    public void run(){
         teste = 1;
    }
}

depois que a thread morre já era! Vc Pode inicializar uma nova Thread dentro do evento do botão.

veja:
new Teste().start();
N

A instancia Teste rr = new Teste(); foi instanciada fora do evento do botão e a thread é chamada dentro do botão (rr.start) toda vez que o botão é apertado.
Eu não posso gerar apenas um objeto (rr) e ficar inicando a thread no evento do botão?

Valeu pela ajuda!!

walissongpi

Naurjr:
A instancia Teste rr = new Teste(); foi instanciada fora do evento do botão e a thread é chamada dentro do botão (rr.start) toda vez que o botão é apertado.
Eu não posso gerar apenas um objeto (rr) e ficar inicando a thread no evento do botão?

Valeu pela ajuda!!

não! Depois que ela foi iniciada elá irá fazer a parte dele e adeus.

Criado 22 de maio de 2010
Ultima resposta 23 de mai. de 2010
Respostas 5
Participantes 3