Advertisement
sedran

Thread Kullanımı 1 : ClockApp.java

Nov 4th, 2011
368
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.92 KB | None | 0 0
  1. package sedran;
  2. // Package ile ilgili hata alırsanız sadece üstteki satırı silmeniz yeterli.
  3.  
  4. /**
  5.  * Saat tutan, her geçen saniye saati ekrana yazan uygulama.
  6.  * @author Serdar KUZUCU
  7.  * http://blog.asosyalbebe.com
  8.  */
  9. public class ClockApp {
  10.    
  11.     public static void main(String a[]) {
  12.         new ClockApp();
  13.     }
  14.    
  15.     public ClockApp() {
  16.         Clock c = new Clock(); // Thread yaratıldı fakat başlatılmadı.
  17.         c.start(); // Thread'i başlatır.
  18.     }
  19.    
  20.     private static class Clock extends Thread {
  21.         private int sn=0, dk=0, saat=0;
  22.        
  23.         /**
  24.          * Bu saate bir saniye ekleyen method. Bu method her çağırıldığında
  25.          * saate bir saniye eklenir ve saniye ve dakika 60'a bölünerek
  26.          * çıkan sonuçları... Ne olduğunu biliyosunuz artık bunun :)
  27.          */
  28.         private void timeIncrement() {
  29.             sn++;
  30.             if(sn/60 > 0) {
  31.                 dk += sn/60;
  32.                 sn %=60;
  33.             }
  34.             if(dk/60 > 0) {
  35.                 saat += dk/60;
  36.                 dk %= 60;
  37.             }
  38.         }
  39.        
  40.         /**
  41.          * Thread start() edildiğinde çağırılan method.
  42.          * Thread program kapatılana kadar hiç bitmesin diyorsanız, bu methodun
  43.          * içerisinde bir sonsuz döngü ayarlamanız gerekiyor.
  44.          */
  45.         public void run() {
  46.             while(true) { // Sonsuz döngümüz.
  47.                 try {
  48.                     Thread.sleep(1000); // Thread'i 1 saniye beklet.
  49.                     timeIncrement(); // Sonra saate bir saniye ekle.
  50.                     System.out.println(this); // Saati yazdır.
  51.                 } catch (InterruptedException e) {
  52.                     e.printStackTrace(); // Thread'i uyutmaya çalışırken hata olması durumunda...
  53.                 }
  54.             }
  55.         }
  56.        
  57.         /**
  58.          * Clock class'ının System.out.println() methoduna
  59.          * parametre olarak atanması durumunda çağırılan method.
  60.          * Clock class'ından dijital saat dizaynında bir String üretir.
  61.          */
  62.         public String toString() {
  63.             String a = (saat/10 == 0) ? "0" + saat : ""+saat;
  64.             a += ":" + ((dk/10 == 0) ? "0" + dk : ""+dk);
  65.             a += ":" + ((sn/10 == 0) ? "0" + sn : ""+sn);
  66.             return a;
  67.         }
  68.     }
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement