Mochamad Kolbi Nuron_5025231183_Tugas 4 PBO A

Studi Kasus Clock Display 

Mochamad Kolbi Nuron
5025231183
Tugas PBO A ke 4


  • ClockDisplay adalah kelas utama yang memperluas kelas JFrame, yang berarti objek ClockDisplay adalah sebuah jendela (frame) GUI.
  • implements Runnable: Menunjukkan bahwa kelas ini mengimplementasikan antarmuka Runnable, yang memungkinkan kelas ini dijalankan sebagai thread yang independen. Thread digunakan untuk memperbarui jam setiap detik tanpa membekukan tampilan GUI.
  • JLabel timeLabel: Label yang digunakan untuk menampilkan waktu pada GUI.
  • Thread clockThread: Objek thread yang digunakan untuk menjalankan proses pembaruan waktu secara independen.

  • super("Clock Display - Real-Time"): Mengatur judul jendela GUI.
  • timeLabel = new JLabel("", JLabel.CENTER): Membuat objek JLabel yang akan menampilkan waktu di tengah jendela.
  • timeLabel.setFont(new Font("Arial", Font.BOLD, 50)): Mengatur font label dengan jenis font Arial, ukuran 50, dan tebal (bold).
  • timeLabel.setOpaque(true): Membuat label tidak transparan sehingga latar belakang bisa diwarnai.
  • timeLabel.setBackground(Color.BLACK): Mengatur latar belakang label menjadi hitam.
  • timeLabel.setForeground(Color.GREEN): Mengatur warna teks menjadi hijau.
  • this.add(timeLabel): Menambahkan label ke dalam jendela.
  • this.setSize(400, 200): Mengatur ukuran jendela (lebar 400 piksel dan tinggi 200 piksel).
  • this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE): Mengatur agar program berhenti saat jendela ditutup.
  • this.setVisible(true): Membuat jendela terlihat.
  • clockThread = new Thread(this): Membuat objek Thread dan memulai thread menggunakan objek ClockDisplay (karena kelas ini mengimplementasikan Runnable).
  • clockThread.start(): Memulai eksekusi thread yang akan menjalankan metode run() secara bersamaan tanpa mengganggu GUI.

  • SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"): Membuat objek SimpleDateFormat untuk memformat waktu menjadi string dengan format "Jam:Menit
    " (misalnya 14:05:30).
  • sdf.setTimeZone(TimeZone.getTimeZone("Asia/Jakarta")): Mengatur zona waktu menjadi WIB (Waktu Indonesia Barat) menggunakan TimeZone.
  • while (true): Sebuah loop tak berujung yang terus berjalan untuk memperbarui waktu setiap detik.
  • Calendar calendar = Calendar.getInstance(): Mengambil waktu saat ini dari sistem komputer.
  • String currentTime = sdf.format(calendar.getTime()): Memformat waktu yang diambil dari Calendar ke dalam format string (misalnya "14:05:30").
  • timeLabel.setText(currentTime): Memperbarui teks pada label timeLabel dengan waktu terkini.
  • Thread.sleep(1000): Menyebabkan thread berhenti selama 1 detik sebelum memperbarui label lagi. Ini menjaga agar tampilan waktu selalu di-update setiap detik.


  • Komentar

    Postingan populer dari blog ini

    Mochamad Kolbi Nuron_5025231183_ETS PBO A

    tugas PBOA pengertian dan konsep OOP

    Mochamad Kolbi Nuron_5025231183_Tugas PBO 8