Nama: Alma Khusnia
NRP: 5025231063
Kelas: PBO (G)
Pertemuan 14
Pemrograman GUI
Source code: github
Soal
1. Membuat frame windows user login dan password .
- Class Login
Kelas utama yang berfungsi untuk mengatur komponen GUI dan logika aplikasi login. Di dalamnya terdapat variabel untuk menyimpan username dan password yang valid (Username dan Password), serta komponen input (txtUsername dan txtPassword). Methode go() bertanggung jawab membuat antarmuka pengguna dengan jendela utama (JFrame), panel (JPanel), label (JLabel), input teks (JTextField dan JPasswordField), serta tombol (JButton). Aksi tombol diatur menggunakan LoginListener untuk proses validasi login, dan CancelListener untuk mengatur ulang input pengguna.
- Class LoginListener
Kelas ini bertugas menangani aksi tombol "Login". Dengan mengimplementasikan ActionListener, metode actionPerformed() akan dipanggil saat tombol diklik. Kelas ini memvalidasi apakah input username dan password sesuai dengan data yang sudah disimpan (Username dan Password). Jika sesuai, akan ditampilkan pesan "Login Granted!", sebaliknya pesan "Login Denied!". Pesan ditampilkan menggunakan kotak dialog (JOptionPane).
- Class CancelListener
Kelas ini bertugas menangani aksi tombol "Cancel". Dengan mengimplementasikan ActionListener, metode actionPerformed() akan dijalankan saat tombol diklik. Kelas ini menghapus teks yang diinput di bidang username dan password dengan memanggil metode setText(""), kemudian mengembalikan fokus ke bidang input username (txtUsername.requestFocus()), sehingga pengguna dapat mulai mengetik kembali tanpa perlu menutup aplikasi.
Testing dapat dilakukan dengan login menggunakan username dan password yang sudah statis di dalam code. Sehingga nanti akan muncul alert apakah benar atau salah username atau password yang dimasukkan.
2. Implementasikan aplikasi image viewer .
Penjelasan kode
1. ImageViewer
Kelas ini berfungsi sebagai aplikasi utama untuk memuat dan menampilkan gambar. Dengan menggunakan JFileChooser, pengguna dapat memilih file gambar, yang kemudian dimuat menggunakan ImageFileManager dan ditampilkan di dalam ImagePanel. Kelas ini juga mengelola fitur-fitur seperti efek filter (darker, lighter, threshold), menampilkan informasi status dan nama file, serta menangani menu untuk membuka, menutup, atau keluar dari aplikasi. Kelas ini membuat antarmuka pengguna dengan JFrame, mengatur panel gambar, dan memberikan fungsionalitas interaktif melalui menu dan tombol.
2. ImagePanel
Kelas ini bertanggung jawab untuk menampilkan gambar yang dimuat di dalam panel. ImagePanel mengatur ukuran panel sesuai dengan dimensi gambar yang ditampilkan. Ketika gambar baru dimuat, ukuran panel diperbarui agar sesuai dengan ukuran gambar tersebut, dan gambar digambar pada panel menggunakan paintComponent. Selain itu, kelas ini menyediakan metode untuk menghapus gambar dan mengatur ukuran panel ketika tidak ada gambar yang ditampilkan.
3. OFImage
Kelas ini memperluas BufferedImage dan menambahkan beberapa metode untuk memanipulasi gambar secara langsung, seperti mengubah kecerahan gambar (dengan metode darker() dan lighter()) atau melakukan thresholding untuk mengubah gambar menjadi hitam, abu-abu, dan putih berdasarkan tingkat kecerahan piksel. Kelas ini memungkinkan pemrosesan gambar pada tingkat piksel dengan menyediakan metode untuk mengatur dan mendapatkan warna piksel, serta memodifikasi gambar berdasarkan manipulasi warna tertentu.
4. ImageFileManager
Kelas ini menangani proses pembacaan dan penyimpanan gambar ke dalam file dengan format JPG. Metode loadImage() digunakan untuk memuat gambar dari file yang diberikan dan mengonversinya menjadi objek OFImage untuk manipulasi lebih lanjut, sedangkan metode saveImage() menyimpan gambar dalam format JPG ke file yang ditentukan. Kelas ini menyederhanakan proses interaksi dengan file gambar, baik untuk membuka maupun menyimpan gambar dalam aplikasi.
Testing dapat dilakukan dengan upload file .jpg yang nantinya akan muncul sesuai size panel. Sehingga pengguna dapat menggulir gambar tersebut.
Komentar
Posting Komentar