Pertemuan 13 – Pemrograman GUI
Tanggal: 17 November 2025
Nama: Hosea Felix Sanjaya
NRP: 5025241177
1. Aplikasi User Login ("LoginFrame")
Kode Program
import javax.swing.; import java.awt.; import java.awt.event.*;
public class LoginFrame extends JFrame implements ActionListener { private JTextField userField; private JPasswordField passField; private JButton loginButton;
public LoginFrame() {
setTitle("Login");
setSize(300, 150);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new GridLayout(3, 2));
// Komponen Input Username
add(new JLabel("Username:"));
userField = new JTextField();
add(userField);
// Komponen Input Password
add(new JLabel("Password:"));
passField = new JPasswordField();
add(passField);
// Tombol Login
loginButton = new JButton("Login");
loginButton.addActionListener(this);
add(new JLabel()); // Placeholder kosong untuk grid
add(loginButton);
setLocationRelativeTo(null); // Posisi di tengah layar
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
String username = userField.getText();
String password = new String(passField.getPassword());
// Validasi sederhana
if (username.equals("admin") && password.equals("12345")) {
JOptionPane.showMessageDialog(this, "Login berhasil!");
} else {
JOptionPane.showMessageDialog(this, "Username atau password salah!");
}
}
public static void main(String[] args) {
new LoginFrame();
}
}
Penjelasan Singkat
- extends JFrame → Kelas ini berfungsi sebagai jendela utama aplikasi.
- implements ActionListener → Digunakan agar kelas dapat merespons aksi (klik tombol) pengguna.
- GridLayout(3, 2) → Mengatur tata letak komponen menjadi 3 baris dan 2 kolom agar rapi.
- JPasswordField → Komponen input khusus password (teks disembunyikan).
- actionPerformed() → Method ini memvalidasi apakah username adalah "admin" dan password "12345".
Dokumentasi
Login and Password
Login Berhasil
Login Gagal
2. Aplikasi Image Viewer
Kode Program
import javax.swing.; import java.awt.; import java.awt.event.*; import java.io.File;
public class ImageViewer extends JFrame implements ActionListener { private JLabel imageLabel; private JButton openButton;
public ImageViewer() {
setTitle("Image Viewer");
setSize(500, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
// Area untuk menampilkan gambar (Tengah)
imageLabel = new JLabel("", SwingConstants.CENTER);
add(imageLabel, BorderLayout.CENTER);
// Tombol untuk membuka file (Bawah)
openButton = new JButton("Open Image");
openButton.addActionListener(this);
add(openButton, BorderLayout.SOUTH);
setLocationRelativeTo(null);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
JFileChooser fileChooser = new JFileChooser();
int option = fileChooser.showOpenDialog(this);
if(option == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
ImageIcon imageIcon = new ImageIcon(file.getAbsolutePath());
imageLabel.setIcon(imageIcon);
}
}
public static void main(String[] args) {
new ImageViewer();
}
}
Penjelasan Singkat
- BorderLayout → Membagi tampilan menjadi 5 area (Center, North, South, East, West). Gambar diletakkan di Center dan tombol di South.
- JFileChooser → Membuka dialog jendela sistem operasi untuk memilih file gambar dari komputer.
- ImageIcon → Mengubah file gambar yang dipilih menjadi ikon yang bisa ditampilkan pada
JLabel. - Event-Driven → Gambar hanya akan muncul setelah pengguna menekan tombol dan memilih file (aksi memicu perubahan).
Kesimpulan
- Java Swing menyediakan komponen GUI (seperti
JFrame,JButton,JTextField) untuk membuat aplikasi desktop interaktif. - Interface
ActionListenersangat penting untuk menangani interaksi pengguna (Event Handling). - Penggunaan Layout Manager (seperti
GridLayoutdanBorderLayout) membantu menyusun komponen secara terstruktur.






Tidak ada komentar:
Posting Komentar