Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [Java] Problema nello sviluppo di un timer

    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); 
            } 
    
    
    
    }

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: [Java] Problema nello sviluppo di un timer

    Originariamente inviato da ghezash
    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.
    Stai tenendo occupato l'EDT, quel lavoro fallo in un thread a parte!

    Ad ogni modo è un problema trattato più e più volte, se fai una ricerca nel forum troverai decine di discussioni a riguardo.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    E io aggiungo i soliti link che indico in questi casi: Concurrency in Swing - Threads and Swing
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.