Pemrograman Visual #1b – Java Swing

Hai semuanya, apa kabar? Kita lanjutin lagi belajar Java-nya. Terakhir, kita bahas tentang JTextArea.

Fungsinya adalah untuk mengetik teks panjang (lebih dari satu baris).

JTextArea textArea = new JTextArea();
textArea.setBounds(20, 140,250,80);
frame.add(textArea);

Sekalian kita “rapiin” juga kodingannya. Biar lebih enak dilihatnya.

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Swing{
    public static void main (String[] args){
        JFrame frame = new JFrame("Aplikasi Pertamaku");
        frame.setSize(400, 450);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(null); // mematikan layout manager agar setBounds bekerja
        frame.setLocationRelativeTo(null);

        //Label Nama
        JLabel label = new JLabel("Nama");
        label.setBounds(30, 20, 100, 30); // merupakan posisi label (x, y, lebar, tinggi)
        frame.add(label);

        //Input Nama
        JTextField textField = new JTextField();
        textField.setBounds(100,20,200,25);
        frame.add(textField);

        //Label Gender
        JLabel labelGender = new JLabel ("Gender");
        labelGender.setBounds (30, 60,100,30);
        frame.add(labelGender);

        //Radio Button Gender
        JRadioButton rbLaki = new JRadioButton("Laki-Laki");
        JRadioButton rbPerempuan = new JRadioButton("Perempuan");
        rbLaki.setBounds(120, 60, 100,25);
        rbPerempuan.setBounds(220, 60, 100, 25);

        ButtonGroup bg = new ButtonGroup();
        bg.add(rbLaki);
        bg.add(rbPerempuan);

        frame.add(rbLaki);
        frame.add(rbPerempuan);

        //Label Kota
        JLabel labelKota = new JLabel("Kota");
        labelKota.setBounds(30,100,100,30);
        frame.add(labelKota);


        //Combo Kota
        String[] daftarKota = {"Jakarta", "Bogor", "Depok", "Tangerang", "Bekasi"};
        JComboBox<String> comboKota = new JComboBox<>(daftarKota);
        comboKota.setBounds (100,100,150,25);
        frame.add(comboKota);


        //Label Textarea
        JLabel labelAlamat = new JLabel("Alamat");
        labelAlamat.setBounds(30,140,100,30);
        frame.add(labelAlamat);


        //TextArea + scroll pane
        JTextArea textArea = new JTextArea();
        textArea.setLineWrap(true); //pindah baris otomatis
        textArea.setWrapStyleWord(true);
        JScrollPane scrollPane = new JScrollPane(textArea);
        scrollPane.setBounds(100, 140, 200,80);
        frame.add(scrollPane);


        //Tombol kirim     
        JButton buttonKirim = new JButton ("Kirim");
        buttonKirim.setBounds(140, 260, 100,35);
        buttonKirim.addActionListener (e -> {
           String nama = textField.getText();
           String kota = (String) comboKota.getSelectedItem();
           String gender = rbLaki.isSelected() ? "Laki-Laki": (rbPerempuan.isSelected() ? "Perempuan" : "Belum Dipilih");

           String pesan = "Halo " + nama + "\n Asal: " + kota + "\n Gender: " + gender;
           JOptionPane.showMessageDialog(frame, pesan);
        });
        frame.add(buttonKirim);


        frame.setVisible(true);
    }
}

image host
image host

Kita coba rangkum, apa aja yang ada pada kode tersebut.

JFrame – Kanvas Utama

JFrame dapat diibaratkan sebagai jendela aplikasinya. Ada metode setSize yuang digunakan untuk mengatur ukuran jendela. Ada juga konstanta (constant) EXIT_ON_CLOSE untuk memastikan aplikasi benar-benar tertutup saat tombol close (X) diklik.

JLabel

Merupakan teks yang berfungsi sebagai “papan nama” agar pengguna dapat mengetahui kotak/tombol di dekatnya digunakan untuk mengissi apa (contohnya: nama, gender, alamat, dll).

Input:

  • `JTextField“: Kotak satu baris untuk mengetik teks pendek (seperti nama).
  • JRadioButton: Pilihan opsi yang dapat dipilih salah satunya (juga menggunakan opsi ButtonGroup).
  • JComboBox: Menu dropdown yang dapat digunakan pengguna untuk memilih daftar yang sudah disediakan.
  • JTextArea: Textbox besar untuk mengetikkan teks yang lebih panjang, misalnya alamat lengkap. Dilengkapi juga dengan JScrollPane agar muncul scrollbar secara otomatis apabila konten sudah terlalu panjang.

Layouting (null layout)

Dengan perintah setLayout (null), kita dapat mengatur posisi dari objek (ditambah setBounds(x, y, lebar, tinggi)) agar kita dapat menentukan posisi dari komponen yang ditampilkan di layar.

JButton & ActionListener

Bisa diibaratkan sebagai “otak” dari aplikasi yang dibuat. Program akan mengambil semua data yang sudah diisi oleh pengguna (menggunakan fungsi .getText() atau .getSelectedItem()). Data-data tersebut digabungkan menjadi satu kalimat panjang (String pesan), kemudian ditampilkan lewat jendela pop-up kecil yang muncul di layar (JOptionPane).

setVisible – Menampilkan Aplikasi

Tanpa setVisible, walaupun kode sudah dijalankan, tapi tidak akan bisa muncul di layar.

Penutup

Begitulah ringkasan mengenai fungsi dari berbagai komponen yang ada di Java Swing. Kita sudah coba juga membuat aplikasi sederhana dari komponen-komponen tersebut. Untuk tulisan kali ini sampai di sini dulu ya. Sampai jumpa. Bye.

By Zaidan

Leave a Reply

Your email address will not be published. Required fields are marked *