Gente, estou fazendo uma thread no meu programa, que fica atualizando uma jTable.
Eu ativo ela, clicando no JToggleButton. Mantendo ela ativa.
Quando clico novamente, ela deveria parar.E se eu clicasse novamente, ela deveria começar do zero.
Quando eu ativo ela pela primeira vez, ela funciona.
Mas quando mando parar e executar de novo, gera diversos Erros…
O que devo fazer?
Classe View :
private boolean activeUpdate = true;
....
private void jToggleButton_KeepUpdatingActionPerformed(java.awt.event.ActionEvent evt) {
if(activeUpdate == false)
{
cc.stopTableUpdate();
activeUpdate = true;
} else if(activeUpdate == true)
{
cc.keepTableUpdated();
activeUpdate = false;
}
}
Classe que Controla a parada e a execução :
//Classe CentralControle
public void keepTableUpdated()
{
System.out.println("Method to start Thread commencing...");
if (keepTable.isInterrupted())
{
} else {
keepTable.start();
}
}
public void stopTableUpdate()
{
//keepTable.setStop(false);
keepTable.interrupt();
}
Classe da Thread :
package KeepAliveAndUpdated;
import Controle.CentralControle;
import java.util.logging.Level;
import java.util.logging.Logger;
public class KeepTable extends Thread{
public CentralControle cc;
private boolean stop = false;
public KeepTable(CentralControle c)
{
cc = c;
}
@Override
public void run()
{
while(stop ==false )
{
try {
this.sleep(5000); // 5 segundos
cc.check();
} catch (InterruptedException ex) {
System.out.println("Thread Error - Please Contact Developer");
stop = true;
}
}
}
public boolean isStop() {
return stop;
}
public void setStop(boolean stop) {
this.stop = stop;
}
}