allora io ho scritto nell' ActionPerformed dove ho i miei pulsanti:
codice:
GiocoForza4.CountDown.t.restart();
ma sembra che non cambi niente
il codice della griglia è questo:
codice:
public class Griglia extends JPanel implements ActionListener
{
    final static int diametro = 88;
    final static int spazio = 6; // spazio tra due pedine
    final static int bordiLaterali = 171; // distanza dai bordi verticali
    final static int bordiVerticali = 35; // distanza dai bordi orizzontali 
    private static int colonne = 7; // definiamo il numero di colonne
    private static int righe = 6; // definiamo il numero di righe
    private static int[][] griglia;    
    private static Graphics2D g2;    
    URL url = getClass().getResource("../Immagini/indicatore.png");
    ImageIcon img = new ImageIcon(url);
    
    // definiamo i pulsanti
    private static JButton a;
    private static JButton b;
    private static JButton c;
    private static JButton d;
    private static JButton e;
    private static JButton f;
    private static JButton g;
    
    //private static GiocoForza4.JLabel time2;
    private static JPanel panel;
    
    // andremo a colorare gli spazi bianchi quando clicchiamo sulla colonna
    private static int BIANCO = 0;
    private static int ROSSO = 1;
    private static int GIALLO = 2;
    
    // variabili boolean
    private static boolean end;    
    private static boolean parita = true;
    
    //private int iniziaColore;
    private static int turno = 0;
    
   
    public Griglia()
    {    
        panel = new JPanel();
        //time2 = new JLabel();
        //panel.add(time2);
        
        griglia = new int[colonne][righe];
        /*
         *  abbiamo aggiunto al pannello, l'azione che ci permette una volta cliccato
         * di aggiungere qualcosa
         */     
        a = new JButton();        
        a.setContentAreaFilled(false);  // questo metodo permette di dare la trasparenza ad un JButton      
        a.setIcon(img);
        a.setPreferredSize(new Dimension(diametro, 25));
        a.addActionListener(this);
        this.add(a);
        
        
        b = new JButton();
        b.setContentAreaFilled(false);      
        b.setIcon(img);
        b.setPreferredSize(new Dimension(diametro, 25));
        b.addActionListener(this);
        this.add(b);
        
        c = new JButton();
        c.setContentAreaFilled(false);      
        c.setIcon(img);
        c.setPreferredSize(new Dimension(diametro, 25));        
        c.addActionListener(this);
        this.add(c);
        
        d = new JButton();
        d.setContentAreaFilled(false);      
        d.setIcon(img);
        d.setPreferredSize(new Dimension(diametro, 25));
        d.addActionListener(this);
        this.add(d);
        
        e = new JButton();
        e.setContentAreaFilled(false);      
        e.setIcon(img);
        e.setPreferredSize(new Dimension(diametro, 25));
        e.addActionListener(this);
        this.add(e);
        
        f = new JButton();
        f.setContentAreaFilled(false);      
        f.setIcon(img);
        f.setPreferredSize(new Dimension(diametro, 25));
        f.addActionListener(this);
        this.add(f);
        
        g = new JButton();
        g.setContentAreaFilled(false);      
        g.setIcon(img);
        g.setPreferredSize(new Dimension(diametro, 25));
        g.addActionListener(this);
        this.add(g);
        
        inizia();
    }
    
    public void paintComponent(Graphics g) // disegniamo la griglia che conterrà le pedine
    {         
        super.paintComponent(g);
        //g.setColor(Color.BLUE);
        g2 = (Graphics2D) g;       
        g2.setColor(Color.BLUE);        
        g2.fillRect(0, 0, getSize().width, getSize().height); // settare le dimensioni del panel
        
         
        /*
         *  disegniamo un rettangolo le cui dimensioni si adattano al pannello (ultimi due parametri)
         * e i primi due danno la posizione di partenza del rettangolo
         */
        for (int i=0; i<colonne; i++)
            {            
                for (int j=0; j< righe; j++)
                {
                    if(griglia[i][j]== BIANCO) // se uguale 0
                    {g2.setColor(Color.WHITE);} // il colore è bianco
                    if(griglia[i][j]== ROSSO) // se uguale a 1
                    {g2.setColor(Color.RED);} // colore rosso
                    if(griglia[i][j]== GIALLO) // se uguale a 2
                    {g2.setColor(Color.YELLOW);} // colore giallo
                    //definiamo il colore che deve avere l'ovale
                    /*
                     * disegniamo l'ovale che conterrà le pedine. Come coordianate affinchè possa ripetersi l'ovale 
                     * per il numero di volte che a noi serve, ci poniamo lo spazio
                     */   
                    //g2.fillOval((spazio + (spazio + diametro)*i), (spazio + (spazio + diametro)*j) ,diametro, diametro);
                    g2.fillOval((bordiLaterali + (spazio + diametro)*i), (bordiVerticali + (spazio + diametro)*j) ,diametro, diametro); 
                    //
                    repaint();   
                } 
            }
    }
    
    public void inizia()
    {
        griglia = new int[colonne][righe];
        
        for(int i = 0; i < colonne; i++)
        {
            for(int j = 0; j < righe; j++)
            {
                griglia[i][j] = BIANCO; 
            }
        }
    }
    
    public static void random()
    {
        Random x = new Random();
        int casuale = x.nextInt(7);
        gioca(casuale);
    }
    
    public static void gioca(int colonna) // metodo che stabilisce l'inserimento della pedina (gravità sulla riga)
    {
        
        for(int i = righe - 1; i >= 0; i--) // parte dal basso
        {
            //GiocoForza4.CountDown.fermati();
            if(griglia[colonna][i] == BIANCO)
            {                
                if((turno % 2) == 0)
                {
                    griglia[colonna][i] = ROSSO;
                }
                else
                {                    
                    griglia[colonna][i] = GIALLO;
                }                      
               
                controllo(g2);        
                GiocoForza4.CountDown.start(); // qui viene richiamato il countDown    
                
                turno++;
                
                // Controllo parità
                if(turno == 42 && parita == true)
                {
                    Parita x = new Parita();
                    x.setVisible(true);  
                }
                
                break; 
            }           
            panel.repaint();
        }
    }
   
    public static void controllo(Graphics g)
    {     
        // controllo verticale sulla colonna        
        for (int col = 0; col < colonne; col++)
        {        
                for (int rig = righe - 1; rig >= righe - 3; rig--)
                {                    
                    int confronto = griglia[col][rig];
                    if(confronto > 0 && confronto == griglia[col][rig-1] && confronto == griglia[col][rig-2] && confronto == griglia[col][rig-3])
                    {   
                       // if(end) return;                        
                        
                         Vittoria x = new Vittoria();
                         x.setVisible(true);                         
                         parita = false;
                         end = true;
                    }
                }
        }
        
        // controllo orizzontale sulla riga
        for (int rig = righe - 1; rig >= 0 ; rig--) // riga fissa
        {            
            for (int col = 0; col < colonne - 3; col++) // colonna in movimento
            {
                int confronto = griglia[col][rig];
                if(confronto > 0 && confronto == griglia[col+1][rig] && confronto == griglia[col+2][rig] && confronto == griglia[col+3][rig])
                {                   
                    Vittoria x = new Vittoria();
                    x.setVisible(true);    
                    parita = false;
                    end = true;
                }        
            }        
        }
        
        // controllo diagonale da sinistra a destra
        for (int rig = righe - 4; rig >= 0; rig--)
        {
            for(int col = 0; col < colonne - 3; col++)
            {
                int confronto = griglia[col][rig];
                if(confronto > 0 && confronto == griglia[col+1][rig+1] && confronto == griglia[col+2][rig+2] && confronto == griglia[col+3][rig+3])
                {
                    Vittoria x = new Vittoria();
                    x.setVisible(true);  
                    parita = false;
                    end = true;
                    
                }
            }
        }
        
        // controllo diagonale da destra a sinistra
        for (int rig = righe - 3; rig <= righe - 1; rig++)
        {
            for(int col = 0; col < colonne - 3; col++)
            {
                int confronto = griglia[col][rig];
                if(confronto > 0 && confronto == griglia[col+1][rig-1] && confronto == griglia[col+2][rig-2] && confronto == griglia[col+3][rig-3])
                {
                    Vittoria x = new Vittoria();
                    x.setVisible(true); 
                    parita = false;  
                    end = true;
                }
            }
        }        
    }
    
    @Override
    public void actionPerformed(ActionEvent evento)
    {       
        GiocoForza4.CountDown.t.restart();
        System.out.println("Prova");
        if((a) == evento.getSource())        {
            
            if (end) return; // impedisce che altri JButton vengano premuti 
                             // qualora uno dei due utenti ha realizzato Forza 4
            
            gioca(0);
        }  
        if((b) == evento.getSource())
        {
            if (end) return;
            gioca(1);
        }   
        if((c) == evento.getSource())
        {
            if (end) return;
            gioca(2);
        }   
        if((d) == evento.getSource())
        {
            if (end) return;
            gioca(3);
        } 
        if((e) == evento.getSource())
        {
            if (end) return;
            gioca(4);
        }       
        if((f) == evento.getSource())
        {
            if (end) return;
            gioca(5);
        }       
        if((g) == evento.getSource())
        {
            if (end) return;            
            gioca(6);
            
        }
        
    }  
}
nel metodo gioca avevo posto il lancio del CountDown, credevo fosse corretto, ma ora sto inziando ad avere dubbi..