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