Salve ragazzi, sono alle prese con un problema che sembra essere banale, ma non ne riesco a venire a capo.
Sto realizzando Forza4 e per implementare dei livelli ho deciso di creare un countDown che al suo scadere genera tramite un random una colonna dove inserisce una pallina. Sono riuscito a far questo con il mio gruppo di lavoro, ma ovviamente l'obiettivo del gioco non è quello di far scadere il timer, quindi il countDown ogni qual volta premo un JButton che mi fa inserire una pallina deve stopparsi e poi riprendere da capo, ma io ottengo una sovrapposizione come se fossero due timer vi posto il codice in questione nella speranza che qualcuno mi riesca a dare una dritta a riguardo..
codice:
static class CountDown
    {
        private static ActionListener action;
        private static int attesa = 1000;
        private static GiocoForza4 f4;
        private static Timer t;        
        private static int valoreTimer = 5;
        private static int count = valoreTimer;        
        
        public static void start() 
        {
            action = new ActionListener()
            {
                @Override
                public void actionPerformed(ActionEvent e)
                {
                    // versione alternativa                             
                                   if(valoreTimer >= 0)
                                    {
                                        time2.setText("        " + valoreTimer + "        ");                                        
                                        System.out.println(valoreTimer);
                                        valoreTimer--;
                                        
                                    }
                                    else
                                    {                                        
                                        ((Timer) e.getSource()).stop();
                                        //System.out.println("E' 0 e vado in else");
                                        //t.stop();
                                        Griglia.random(); // questo genera il Random                                       
                                        valoreTimer = count;                                  
                                    }
                }
                
            };
            
            t = new Timer(attesa, action);
            t.start();
            //System.out.println("Ora ti stoppo");
            //t.stop();
        } 
        
        public static void fermati()
        {
            if(t.isRunning())
            {
               t.stop(); 
            }
            System.out.println("PROVA STOP");            
                                
            System.out.println("Prova dopo STOP");
        }        
        
        
    }
ho postato solo la parte di codice relativa al timer perchè dopo il resto funziona bene e anche quando richiamo lo stop, sembra che venga chiamato nel punto giusto come mi dimostrano i messaggi di output..cmq qualora servisse posto tutto..