Visualizzazione dei risultati da 1 a 6 su 6

Discussione: orologio digitale

  1. #1

    orologio digitale

    Salve voglio integrare alla mia interfaccia un'orologio digitale sulla menuBar.
    Ovviamente ho creato una classe per realizzare l'orologio (senza applet) con un thread.
    Premessa: io non sò usare i thread
    codice menubar:

    codice:
    public static JLabel jl=new JLabel();
     JPanel ora_giorno=new JPanel();
    //dovrei chiamare la classe thread ora_giorno
    	ora_giorno.add( jl);
    	    	  menuBar.add(ora_giorno);
    codice classe che realizza orologio con thread
    codice:
    public class ora_giorno_digitale{
    
    public static void main(String args[]){
    
        new Clock();
    }
    
    public static class Clock implements Runnable{
        Thread t;
        public Clock(){
            t=new Thread(this);
            t.run();
        }
    
        public void run(){
            for( ; ; ){
            grafica_ora.jl.setText(Calendar.getInstance().get(Calendar.HOUR_OF_DAY)+(":")+(Calendar.getInstance().get(Calendar.MINUTE))+""+(":")+(Calendar.getInstance().get(Calendar.SECOND))+"");
            try{Thread.sleep(1000);}catch(Exception e){}
     }
        }
    }
    }
    ora dovrei richiamare questo codice all'interno del menubar..... non mi riesce
    Spero che ci sia qualcuno che abbia capito e grazie in anticipo a tutti coloro che sapranno aiutarmi

  2. #2
    ok risolto. era una questione di priorita', in pratica il codice dell'orologio che ho postato bisognava chiamarlo non in grafica di cui ho postato solo il menubar, ma bisognava richiamarlo nel main dell'intero programma!

  3. #3
    ora però vorrei fare un'altra cosa ovvero dare la possibilità all'utente di eliminare la visualizzazione dell'orario. Ho fatto nell'actionlistener del pulsante corrispondente all'eliminazione dell'orario, semplicemente jl=settext(""). ovvero dal momento che l'utente clicca su nascondi orario, la label che contiene l'orario ora conterrà niente!
    ma purtroppo questo funziona soloo per una frazione di secondi.
    Ho provato ad usare un thread infinito ma il programma in esecuzione si incanta, cioè si blocca si ferma...
    Spero che qualcuno possa aiutarmi...

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Nota che non sarebbe strettamente necessario usare i "thread". Basta usare un più semplice javax.swing.Timer, che tra l'altro ha i metodi per stoppare/avviare il timer ogni volta che ti serve.

    Tra i miei Java Examples (vedi firma) sezione AWT/Swing - Timers c'è un esempio di "cronometro" che è una cosa già un pochino più particolare rispetto ad un semplice orologio. Guarda però la gestione del timer.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    PS: per postare del codice si usano i tag CODE (o PHP). I tag LIST servono per gli elenci puntati (o numerati)...


    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

  6. #6
    Complimenti è un sito interessante!
    Per quanto riguarda l'uso di list e non di code, si vede che non sono molto esperta di forum?!!!

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.