Ciao, oggi ho cercato di sviluppare un Timer in Java, prima l'ho fatto a console e andava benissimo poi l'ho rifatto con la GUI e li iniziano i problemi!
In pratica al posto di inserire nella label ogni secondo un numero diverso che va da 0 a 10 aspetta 10 secondi e mette appunto subito il 10.

Vi lascio il codice:

codice:
import javax.swing.*; 

import java.awt.*; 
import java.awt.event.*; 

public class JTimer extends JFrame{ 
    private JPanel pannello; 
    private JButton bottone; 
    public JLabel time; 
    JTimer(int secondi){ 
        super("JTimer"); 
        AscoltaEventi ae = new AscoltaEventi(); 
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        setSize(500,500); 
        pannello = new JPanel(); 
        pannello.setSize(500,500); 
        pannello.setLayout(null); 
        add(pannello); 
        setVisible(true); 
         
        bottone = new JButton("Start"); 
        bottone.setBounds(225,200,50,50); 
        bottone.addActionListener(ae); 
        pannello.add(bottone); 
        time = new JLabel(); 
        time.setBounds(10,10,200,200); 
        pannello.add(time); 
         
    } 


    public class AscoltaEventi implements ActionListener{ 

         
        public void actionPerformed(ActionEvent e) { 
            String pressione = e.getActionCommand(); 
            if(pressione.equals("Start")){ 
                Timer(10); 
            } 
        } 
         

        public void Timer(int tempo){ 
                int i = 0; 
                while(i <= tempo ){ 
                    try{ 
                    Thread.sleep(1000); 
                    }catch(InterruptedException e){ 
                        e.printStackTrace(); 
                    } 
                    time.setText(""+i); 
                    i++; 
                } 
            } 
        } 
        public static void main(String[] args) { 
            JTimer prova = new JTimer(10); 
        } 



}