Thread

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!!

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?

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;

}

}

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

[code]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;
}[/code]

}[/quote]

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

veja:

new Teste().start();

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!!

[quote=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!![/quote]

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