Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    2

    JAVA creare un Jbutton che permetta il reset di un ciclo while?

    questo è il mio codice per il coutdown:

    codice:
       private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                         
         
            GregorianCalendar gcalendar = new GregorianCalendar();
            int ore = 0;
            int minuti = 0;
            int secondi = 0;
    
            ore=Integer.valueOf(jTextField1.getText());
            minuti=Integer.valueOf(jTextField2.getText());
            secondi=Integer.valueOf(jTextField3.getText());
            
            while (ore >= 0) {
                gcalendar.set(Calendar.HOUR, ore);
                while (minuti >= 0) {
                    gcalendar.set(Calendar.MINUTE, minuti);
                    while (secondi >= 0) {
                        gcalendar.set(Calendar.SECOND, secondi);
                        System.out.println(gcalendar.get(Calendar.MINUTE)+":"+gcalendar.get(Calendar.SECOND));
    
                        try {
                            Thread.sleep(1000L);
                        } catch(InterruptedException _ex) {}
                        secondi--;
                    }
                    minuti--;
                    secondi = 59;
                }
                ore--;
                minuti = 59;
            }
    
            if(gcalendar.get(Calendar.SECOND)==0){
                Audioapp audio = new Audioapp();
                audio.init();
            }
        }
    come posso inserire un Jbutton "reset" che resetta il ciclo qui sopra??
    mi servirebbe anche un codice che permetta di visualizzare i ore minuti e secondi che passano.... graziee

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Quel codice è sbagliato.
    Operazioni "computazionalmente pesanti" vanno delegate ad un thread a parte, mentre tu stai eseguendo il tutto dentro all'actionPerformed di un componente, tenendo impegnato l'EDT (se ne è parlato tante volte anche qui sul forum) e l'interfaccia rimane "congelata" finchè il tuo ciclo non finisce.

    Per avere un pulsante che "resetti" quel while (definizione errata poichè un while non si resetta, al più lo si fa terminare) dovrai avere un pulsante che imposti una variabile che permetta alla condizione di diventare falsa, in modo che il while si fermi. Ovviamente, la cosa funzionerebbe se quel codice fosse relegato in un thread.

    mi servirebbe anche un codice che permetta di visualizzare i ore minuti e secondi che passano.... graziee
    Hai provato a scrivere del codice che lo faccia? Qui non si viene a chidere di sviluppare del codice, ma al più a chidere di trovare eventuali errori nel proprio codice.

    PS: dovresti anche prendere visione del regolamento interno; oltre ad essere scritto che non si chiede lo sviluppo di codice, c'è anche scritto che il posting del codice va fatto all'interno degli appositi tag CODE, in modo da mantenere formattazione ed indentazione.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    2
    grazie dell'aiuto e scusa non lo sapevo sono nuova nel forum... ciaoooo

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 © 2026 vBulletin Solutions, Inc. All rights reserved.