Senin, 24 November 2025

Pertemuan 13 : Pemrograman GUI

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 ActionListener sangat penting untuk menangani interaksi pengguna (Event Handling).
  • Penggunaan Layout Manager (seperti GridLayout dan BorderLayout) membantu menyusun komponen secara terstruktur.

Image Viewer

Tidak ada komentar:

Posting Komentar

Pertemuan 15 : Aplikasi CRUD JAVA

Pertemuan 15 - Java CRUD Database Tanggal: 9 Desember 2025 Nama: Hosea Felix Sanjaya NRP: 5025241177 a. Setup & Persiapan Envi...