pc_man Δημοσ. 20 Αυγούστου 2008 Δημοσ. 20 Αυγούστου 2008 Να με πάλι με μια καινούργια απορία για την java. Ξέρει κανείς πως μπορώ να φτίαξω ένα πρόγραμμα το οποίο να προβάλει την ώρα και να την ανανεώνει κάθε δευτερόλεπτο [ή και εκατοστό του δευτερολέπτου!]. Δηλαδή ένα ρολόι που "κυλάει". Η έξοδος να είναι στην γραμμή εντολών [ή σε ένα jLabel ]. Ευχαριστώ για κάθε βοήθεια
alex2005 Δημοσ. 20 Αυγούστου 2008 Δημοσ. 20 Αυγούστου 2008 Θα πρέπει να υλοποιηθεί μέσω 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 μπορείς να το αντικαταστήσεις με ότι άλλο θέλεις έτσι ώστε να τον προβάλλεις στον χρήστη.
pc_man Δημοσ. 21 Αυγούστου 2008 Μέλος Δημοσ. 21 Αυγούστου 2008 Το μεταγλωτίζω [ αντικαθιστώ όμως το new Timer.start() με new Thread.start() ] , το τρέχω και δεν γίνεται τίποτα. Με λίγη τροποποίηση όμως κατάφερα να το κάνω να δουλέψει. > 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
alex2005 Δημοσ. 21 Αυγούστου 2008 Δημοσ. 21 Αυγούστου 2008 Έκανα μέγα λάθος!!! Κοίτα πάλι έκανα edit τον κώδικα.
pc_man Δημοσ. 22 Αυγούστου 2008 Μέλος Δημοσ. 22 Αυγούστου 2008 Ωραία, τώρα δουλεύει. Μήπως ξέρεις όμως αν είναι καλύτερα να δημιουργήσω το πρόγραμμα τοποθετώντας το "μηχανισμό του ρολογιού"(το βρόγχο while δηλαδή) στην main ή είναι καλύτερο να βάλω την κλάσση στο δικό της νήμα ?
alex2005 Δημοσ. 22 Αυγούστου 2008 Δημοσ. 22 Αυγούστου 2008 Επειδή θεωρώ πως η εφαρμογή σου δεν θα είναι μόνο το ρολόι, πιστεύω πως πρέπει να είναι στο δικό του νήμα.
alex2005 Δημοσ. 23 Αυγούστου 2008 Δημοσ. 23 Αυγούστου 2008 http://en.wikipedia.org/wiki/Thread_(computer_science)
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.