Nama : Nadin Nabil Hafizh Ayyasy
NRP : 5025231061
GIT : https://github.com/Happpizh/PBO/tree/main/tugas15
Implementasi GUI
Penjelasan code
ImagePanel
Kode di atas mendefinisikan kelas ImagePanel, yang merupakan komponen GUI untuk menampilkan gambar dengan cara yang terpusat dan mempertahankan rasio aspek gambar. Kelas ini menggunakan OFImage untuk merepresentasikan gambar yang ditampilkan. Metode setImage digunakan untuk mengatur gambar yang akan ditampilkan, sementara clearImage menghapus gambar dengan mengisi area panel dengan warna abu-abu. Metode paintComponent bertanggung jawab untuk menggambar gambar pada panel, menyesuaikan ukurannya agar sesuai dengan panel sambil mempertahankan rasio aspek. Jika tidak ada gambar yang disetel, panel akan diisi dengan warna abu-abu. Ukuran default panel adalah 800x600 piksel sebagaimana didefinisikan dalam getPreferredSize.
ImageViewer
Kode di atas mendefinisikan aplikasi GUI bernama ImageViewer, yang digunakan untuk membuka, menampilkan, dan memodifikasi gambar dengan berbagai filter (seperti "Darker", "Lighter", dan "Threshold"). Program ini menggunakan kelas ImagePanel untuk menampilkan gambar, menyediakan menu bar dengan opsi seperti membuka, menutup, keluar, menerapkan filter, dan menampilkan informasi tentang aplikasi. Gambar dapat dimuat melalui dialog file menggunakan JFileChooser, dan modifikasi gambar dilakukan dengan memanipulasi objek OFImage. Komponen utama seperti label, panel gambar, dan menu bar disusun dalam sebuah frame, yang dirancang untuk pusat layar saat aplikasi dijalankan.
ImageFIleManager
Kode ini mendefinisikan kelas ImageFileManager yang menyediakan dua metode statis untuk menangani file gambar. Metode loadImage membaca file gambar menggunakan ImageIO.read dan mengembalikannya sebagai objek OFImage jika file valid, atau mengembalikan null jika gagal membaca gambar. Metode saveImage menyimpan objek OFImage ke file dalam format JPEG menggunakan ImageIO.write. Kedua metode dirancang untuk menangani kesalahan dengan pengecualian yang memastikan aplikasi tidak crash jika terjadi kesalahan input/output.
OFImage
Kode di atas mendefinisikan kelas OFImage, yang memperluas BufferedImage dengan fitur tambahan untuk memanipulasi piksel secara langsung. Kelas ini menyediakan metode untuk mengatur dan mendapatkan warna piksel menggunakan setPixel dan getPixel. Fitur tambahan termasuk metode darker dan lighter yang menggelapkan atau mencerahkan setiap piksel dalam gambar, serta metode threshold, yang mengonversi gambar menjadi tiga tingkat warna (hitam, abu-abu, atau putih) berdasarkan kecerahan piksel. Kelas ini dirancang untuk mempermudah manipulasi gambar dengan antarmuka berbasis warna dan piksel.
Cara Menjalankan
1. Pastikan Struktur program sudah benar
2. Klik class ImageViewer
3. Lalu klik Voidmain(String[] args)
4. Klik file lalu open file gambar yang ingin kamu lihat
Penjelasan code
Login
Kode di atas membuat aplikasi GUI sederhana untuk fitur login menggunakan JFrame dan JPanel. Login memvalidasi input pengguna dengan mencocokkan username dan password yang telah didefinisikan dalam kode. Jika pengguna memasukkan kredensial yang benar, pesan "Login successful!" ditampilkan; jika salah, pesan "Login failed!" muncul. Tombol "Cancel" membersihkan semua input dan mengembalikan fokus ke kolom username. Komponen GUI termasuk label, field input untuk username dan password, serta tombol login dan cancel, semuanya diatur menggunakan layout default JPanel.
Cara Menjalankan
1. Klik class Login
2. Lalu klik Voidmain(String[] args)
4. Masukan username sandi yang benar
Comments
Post a Comment