Sabtu, 22 September 2012

Bekerja dengan JCheckBox dan JRadioButton

JCheckBox dan JRadioButton hanya bisa mempunyai dua buah kemungkinan nilai, benar atau salah. Kedua komponen ini digunakan untuk merepresentasikan data yang berupa pilihan.

JCheckBox digunakan jika pilihanya berupa multiple selection, sedangkan JRadioButton digunakan jika pilihanya berupa single selection.

JRadioButton digunakan misalnya untuk merepresentasikan pilihan jenis kelamin. JCheckBox digunakan misalnya untuk merepresentasikan pilihan hobby.

ButtonGroup diperlukan untuk mengumpulkan JRadioButton yang mempunyai grup pilihan yang sama. Misalnya grup pilihan jenis kelamin digunakan untuk mengumpulkan JRadioButton yang merepresentasikan pilihan laki-laki dan JRadioButton yang merepresentasikan pilihan perempuan dalam satu group. Jika JRadioButton tidak diletakkan dalam satu group, maka pilihan lakilaki dan pilihan perempuan bisa dipilih bersamaan.

Status dari JRadioButton dan JCheckBox dapat diketahui dengan melihat nilai kembalian dari method isSelected, jika dipilih maka nilai kembalian method isSelected adalah benar, dan false jika sebaliknya.

Setiap JRadioButton dan JCheckBox mempunyai text yang menerangkan pilihan yang diwakilinya. Method getText dan setText digunakan untuk memanipulasi text.

Dibawah ini adalah contoh program yang menggunakan JCheckBox dan JRadioButton.

 
        Contoh aplikasi menggunakan JCheckBox dan JRadioButton 
Di bagian atas aplikasi ini, terdapat dua JRadioButton untuk merepresentasikan pilihan tipe warna, transparan atau berwarna. Dibawahnya terdapat pilihan warna yang dapat dipilih lebih dari satu buah menggunakan JCheckBox.

Untuk membuat program diatas ikuti langkah-langkah berikut ini:

1. Buat class baru bertipe JFrame Form, kemudian beri nama Pilihan.java
2. Buat tampilan diatas menggunakan Matisse. komponen yang harus dibuat adalah :

○ Dua object JRadioButton : radioBerwarna dan radioTransparan.
○ Satu object ButtonGroup : groupTipeWarna.
○ Empat object JCheckBox : chkHijau, chkBiru, chkMerah, chkKuning.
○ Satu object JTextArea : txtWarna.
○ Satu object JScrollPane : scrollWarna

Untuk melihat semua komponen yang ada dalam Jendela Design, gunakan Jendela Inspector di sisi kiri bawah.

3. Masukkan object radioBerwarna dan radioTransparan ke dalam object groupTipeWarna. Caranya dengan :

a) Memilih komponen radioBerwarna di Jendela Design
b) Klik tab code di Jendela Properties
c) Pilih properti : Post-Creation Code
d) Masukkan kode berikut ini kedalam dialog yang muncul :

groupTipeWarna.add(radioBerwarna);

Lakukan langkah yang sama terhadap object radioTransparan.

4. Menangani event ketika JRadioButton diklik. Caranya dengan :

a) Memilih komponen radioBerwarna di Jendela Design
b) Klik kanan komponen radioBerwarna, kemudian pilih menu:

Event > Action > actionPerformed

c) Anda akan dibawa ke dalam Jendela Code, dan menemukan kode berikut ini :

private void radioBerwarnaActionPerformed(
java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}

Ubahlah kode diatas menjadi :

private void radioBerwarnaActionPerformed(
java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(radioBerwarna.isSelected()){
lblTipeWarna.setText("Tipe warna : " +
radioBerwarna.getText());
}
}

Lakukan langkah yang sama terhadap radioTransparan.

5. Buat sebuah private method untuk menangani event pemilihan terhadap JCheckBox. Method tampilkanWarna ini nantinya akan dipanggil setiap kali salah satu dari JCheckBox dipilih. yang dilakukan oleh metod tampilkanWarna adalah mengecek status setiap JCheckBox, apakah sedang dipilih atau tidak. Jika sedang dipilih maka text dari JCheckBox tersebut akan ditampilkan dalam txtWarna.

Class StringBuffer digunakan untuk menampung nilai text dari JCheckBox yang statusnya terpilih.

private void tampilkanWarna(){
StringBuffer warna = new StringBuffer();
if(chkBiru.isSelected()){
warna.append(chkBiru.getText() + " ");
}
if(chkHijau.isSelected()){
warna.append(chkHijau.getText() + " ");
}
if(chkKuning.isSelected()){
warna.append(chkKuning.getText() + " ");
}
if(chkMerah.isSelected()){
warna.append(chkMerah.getText() + " ");
}
txtWarna.setText(warna.toString());
}

6. Menangani event pemilihan JCheckBox. Caranya sebagai berikut :

a) Pilih komponen chkHijau di Jendela Design.
b) Klik kanan komponen chkHijau untuk memunculkan context (popup) menu.
c) Pilih menu :

Event > Action > actionPerformed

d) Anda akan dibawa ke Jendela Code, kemudian dalam method chkHijauActionPerformed tersebut panggil method tampilkanWarna. seperti di bawah ini :

private void chkHijauActionPerformed(
java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
tampilkanWarna();
}

Lakukan hal ini untuk semua JCheckBox.
7. Compile dan jalankan program dengan menekan tombol SHIFT + F6.

Cara lain dalam menampilkan pilihan adalah dengan menggunakan JList dan JComboBox. Kedua komponen ini mempunyai fleksibilitas yang lebih tinggi dan lebih mudah digunakan jika object yang dimasukkan dalam pilihan lebih kompleks. JList dan JComboBox bisa mempunyai ComponentEditor agar pilihan yang ditampilkan tidak hanya berupa text, bisa berupa warna atau icon. Bagian berikutnya akan membahas bagaimana bekerja menggunakan JListdan JComboBox.

4 komentar:

  1. JCheckBox dan JRadioButton sebaiknya digunakan hanya jika item pilihanya sedikit dan tidak bersifat dinamis

    BalasHapus
  2. JRadioButton yang mempunyai group yang sama, harus dimasukkan dalam sebuah object ButtonGroup yang sama.

    BalasHapus
  3. Class StringBuffer sangat dianjurkan untuk
    digunakan sebagai class untuk memanipulasi
    String.
    Penggabungan string menggunakan operator +
    sangat tidak dianjurkan, apalagi jika ukuran
    object String-nya sudah cukup besar.

    BalasHapus