private class Automatico extends StatoRilevatore{

public synchronized void action(){
int stato=0;
ListIterator it=osservatori.listIterator();
while(lettura<livmin){
System.out.println("Ora siamo in AUTOMATICO infatti:");
lettura=InterfacciamentoSensore.getInstanzaSensore ().getLetturaLivello();
while(it.hasNext())
((Osservatori) it.next()).visualizza(lettura,stato);
}
allerta();
}
public synchronized void allerta(){ fsm.transition(ALLERTA); }
}//Automatico

private class Allerta extends StatoRilevatore{
public synchronized void action(){
int stato=1;
ListIterator it=osservatori.listIterator();
//timer.schedule(task,0,5000);
while(lettura>livmin){
System.out.println("Ora siamo in ALLERTA infatti:");
lettura=InterfacciamentoSensore.getInstanzaSensore ().getLetturaLivello();
while(it.hasNext())
((Osservatori) it.next()).visualizza(lettura,stato);

}
automatico();

}
public synchronized void automatico(){ fsm.transition(AUTOMATICO); }
}//Allerta

Fatto questo dovrei in teoria nello stato Allerta effettuare l'operazione di visualizza(lettura,stato),sempre se la condizione lettura>livmin,ogni 5 secondi.
Allerta e Automatico sono 2 stati di una classe Madre detta Rilevatore,ho provato con i consigli che ho visto sul forum e cioè con il metodo timer.schedule(task,0,5000); ma mi da errore su cio'...se invece elimino il comando schedule funziona tutto ma ad una velocità errata,manca appunto il controllo...come posso fare?