Προς το περιεχόμενο

Java - Δημιουργία ρολογιού


pc_man

Προτεινόμενες αναρτήσεις

Δημοσ.

Να με πάλι με μια καινούργια απορία για την java. Ξέρει κανείς πως μπορώ να φτίαξω ένα πρόγραμμα το οποίο να προβάλει την ώρα και να την ανανεώνει κάθε δευτερόλεπτο [ή και εκατοστό του δευτερολέπτου!]. Δηλαδή ένα ρολόι που "κυλάει". Η έξοδος να είναι στην γραμμή εντολών [ή σε ένα jLabel ].

 

Ευχαριστώ για κάθε βοήθεια

Δημοσ.

Θα πρέπει να υλοποιηθεί μέσω Thread αυτό το οποίο θα εκτελείται κάθε X milliseconds.

 

Μία απλή λύση είναι:

 

>
public class Timer implements Runnable{

   public static void main(String args[]){
       new Thread(new Timer()).start();
   }

   public void run(){
       while(true){
           java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("HH:mm:ss");
           java.util.Calendar cal = java.util.Calendar.getInstance();
           System.out.println(format.format(cal.getTime()));
           try{Thread.sleep(1000);}catch(Exception e){}
       }
   }

}

Όπου έβαλα system.out.println μπορείς να το αντικαταστήσεις με ότι άλλο θέλεις έτσι ώστε να τον προβάλλεις στον χρήστη.

Δημοσ.

Το μεταγλωτίζω [ αντικαθιστώ όμως το new Timer.start() με new Thread.start() ] , το τρέχω και δεν γίνεται τίποτα.

 

Με λίγη τροποποίηση όμως κατάφερα να το κάνω να δουλέψει.:-D

 

>
public class Timer{

   public static void main(String args[]) {

java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("HH:mm:ss");
java.util.Calendar cal;

       while(true){

   cal = java.util.Calendar.getInstance();

   System.out.print("\r"+format.format(cal.getTime()));

   try{Thread.sleep(1000);}catch(Exception e){}

       } // end of while

   } // end of main    

} // end of class 

Δημοσ.

Ωραία, τώρα δουλεύει. Μήπως ξέρεις όμως αν είναι καλύτερα να δημιουργήσω το πρόγραμμα τοποθετώντας το "μηχανισμό του ρολογιού"(το βρόγχο while δηλαδή) στην main ή είναι καλύτερο να βάλω την κλάσση στο δικό της νήμα ?

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...