ciao..
sto cercando di creare un timer in modo che fissata una frequenza (battiti che ho al minuto) mi si illumini un cerchio ad ogni battito.

ora...
il programma me lo compila, ma penso di aver sbagliato il dalay.. che per un minuto sono 60000 millisecondi e non mi funziona il tasto stop..

inoltre premendo reset mi si dovrebbero azzarare tutti i valori....ma non succede!!

vi posto il codice...
(ho chimato ritmo la seri dei tempi in base 2-3-4 che posso scegliere dall'interfaccia. Le battute si riferiscono alla seriedei tempi completa al minuto)..grazie!!!!

codice:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.Timer;

class GestoreTimer {

    private Timer timer;

    // numero di tempi eseguiti sinora
    private int numeroTempiTotaleAttuale = 0;

    // tempo eseguito nella battuta corrente - RITMO
    private int tempoAttuale             = 0;

    // numero di battute eseguite sinora -Battuta
    private int battutaAttuale           = 0;

    // numero di tempi presenti in ogni battuta - FREQUENZA
    private int tempiPerBattuta          = 0;

    public final static int ONE_SECOND = 1000;

    // imposta il timer ad una frequenza unitaria
    public GestoreTimer() {
        timer = new Timer(ONE_SECOND, taskPerformer);
    }

    // imposta il timer ad una frequenza arbitraria
    public GestoreTimer(double iFrequenza) {
        timer = new Timer( new Double(ONE_SECOND/iFrequenza).intValue() , taskPerformer);
    }

    // imposta la frequenza del Timer
    public void impostaFrequenza(double iFrequenza) {
        timer.setDelay(new Double(ONE_SECOND/iFrequenza).intValue());
    }

    public Timer getTimer() {
        return timer;
    }

    public int getBattutaAttuale() {
        return battutaAttuale;
    }

    public int getTempoAttuale() {
        return tempoAttuale;
    }

    public int getTempiPerBattuta() {
        return tempiPerBattuta;
    }

    public int getNumeroTempiTotaleAttuale() {
        return numeroTempiTotaleAttuale;
    }

    public void setTimer(Timer timer) {
        this.timer = timer;
    }

    public void setBattutaAttuale(int battutaAttuale) {
        this.battutaAttuale = battutaAttuale;
    }

    public void setTempoAttuale(int tempoAttuale) {
        this.tempoAttuale = tempoAttuale;
    }

    public void setTempiPerBattuta(int tempiPerBattuta) {
        this.tempiPerBattuta = tempiPerBattuta;
    }

    public void setNumeroTempiTotaleAttuale(int numeroTempiTotaleAttuale) {
        this.numeroTempiTotaleAttuale = numeroTempiTotaleAttuale;
    }

    ActionListener taskPerformer = new ActionListener() {
        // azione eseguita ad ogni colpo del timer
        public void actionPerformed(ActionEvent evt) {
            // incrementa il numero totale dei tempi
            numeroTempiTotaleAttuale++ ;
            // determina a che battuta ci si trova
            battutaAttuale = new Double(numeroTempiTotaleAttuale/tempiPerBattuta).intValue();
            // determina il tempo attuale nella battuta
            tempoAttuale = numeroTempiTotaleAttuale%tempiPerBattuta;
            System.out.println(numeroTempiTotaleAttuale);
        }
    };

    public void resetTimer() {
     
 	timer.stop();
        numeroTempiTotaleAttuale = 0;
        tempoAttuale             = 0;
        battutaAttuale           = 0;
    }

}