E ai galera beleza…
fiz um botão em minha aplicação que ao ser apertado ele inicia um thread (obj.start() 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??
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
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
Eu tenha uma classe (NewJFrame) que contém o evento botão.Abaixo coloquei parte do código!
publicclassNewJFrameextendsjavax.swing.JFrame{Testerr=newTeste();//instancia um objeto da classe que contem a threadpublicNewJFrame(){initComponents();}privatevoidjButton16ActionPerformed(java.awt.event.ActionEventevt){rr.start();}Tenhooutraclasse(Teste)quepossuiathreadequeéinstanciadapelaclasseNewJFrame.publicclassTesteextendsThread{intteste=0;Stringusua;publicTeste(){}publicvoidrun(){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
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!!
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.