Mochamad Kolbi Nuron_5025231183_Tugas 4 PBO A
Studi Kasus Clock Display
Mochamad Kolbi Nuron5025231183
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
Posting Komentar