Program Java menggunakan kelas JCheckBox
Menggunakan Kelas JCheckBox Di Java
Anda yang pekerjaan sehari-harinya tidak lepas dengan komputer, mungkin tidak akan asing dengan kotak centang (check box) yang sering dilihat pada berbagai program atau aplikasi. Kotak centang lazim ada di antarmuka pengguna grafis (user interface) pada program atau aplikasi Windows.

Sebagaimana bahasa pemrograman pada umumnya yang dapat menghasilkan komponen grafis berupa kotak centang, Java juga menyediakan sebuah kelas grafis untuk menghasilkan obyek berupa kotak centang. Kelas grafis tersebut adalah JCheckBox. Di artikel Mengenal Kelas JCheckBox Di Java, Anda diperkenalkan dengan kelas tersebut terutama terkait dengan konstruktor (constructors) yang dimilikinya.

Berikut ini adalah contoh program Java yang menggunakan kelas JCheckBox. Di kode program ini, kotak centang (check box) yang dikonstruksi dari kelas JCheckBox digunakan untuk mengatur tampilan teks di label. Anda dapat memberi centang atau menghilangkan centang di empat tombol check box yang tersedia untuk membuat tampilan font menjadi bold, italic, berwarna biru atau kombinasi di antaranya.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
// Nama file : CheckBoxDemo.java
// Mendemonstrasikan penggunaan JCheckBox

// Mengimpor kelas
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

// Deklarasi kelas
public class CheckBoxDemo extends JFrame {

   private JPanel panel;
   private JLabel label;
   private JCheckBox warna, bold, italic;

   public CheckBoxDemo() {

      Font font = new Font("Tahoma", Font.PLAIN, 20);
      label = new JLabel("Mari belajar bahasa Java", JLabel.CENTER);
      label.setFont(font);
      label.setBackground(Color.WHITE);
      getContentPane().add(label, BorderLayout.CENTER);

      warna = new JCheckBox("Blue");
      warna.setBackground(Color.YELLOW);
      bold = new JCheckBox("Bold");
      bold.setBackground(Color.YELLOW);
      italic = new JCheckBox("Italic");
      italic.setBackground(Color.YELLOW);

      panel = new JPanel();
      panel.setLayout(new FlowLayout(FlowLayout.CENTER, 12, 3));
      panel.setBackground(Color.YELLOW);
      panel.add(warna);
      panel.add(bold);
      panel.add(italic);
      getContentPane().add(panel, BorderLayout.PAGE_END);

      ItemEventHandler handler = new ItemEventHandler();
      warna.addItemListener(handler);
      bold.addItemListener(handler);
      italic.addItemListener(handler);
   }

   // Deklarasi inner class
   class ItemEventHandler implements ItemListener {
   
      private Color nilaiWarna = Color.BLACK;
      private int nilaiBold = Font.PLAIN;
      private int nilaiItalic = Font.PLAIN;

      // Deklarasi ulang metoda itemStateChanged
      public void itemStateChanged(ItemEvent ie) {
   
         if (ie.getSource() == warna)
            nilaiWarna = warna.isSelected() ? Color.BLUE : Color.BLACK;

         if (ie.getSource() == bold)
            nilaiBold = bold.isSelected() ? Font.BOLD : Font.PLAIN;

         if (ie.getSource() == italic)
            nilaiItalic = italic.isSelected() ? Font.ITALIC : Font.PLAIN;

         label.setFont(new Font("Tahoma", nilaiBold + nilaiItalic, 20));
         label.setForeground(nilaiWarna);
      }
   }

   // Metoda main
   public static void main(String[] args) {

      CheckBoxDemo frame = new CheckBoxDemo();
      frame.setTitle("Kelas CheckBoxDemo");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setSize(300, 150);
      frame.setVisible(true);
   }
}

Menggunakan kelas JCheckBox di program Java

Tombol check box dapat memicu ActionEvent atau ItemEvent. Anda dapat menggunakan salah satu event untuk menampilkan kembali perubahan tampilan teks yang terdapat di label. Ketika tombol check box mana saja diklik (selected) atau diklik kembali (unselected), blok metoda itemStateChanged (baris nomor 53 – 67) dieksekusi.

Program akan mendeteksi tombol check box mana yang sedang memicu ItemEvent. Apabila tombol check box dengan nama warna, pernyataan di baris nomor 56 dieksekusi, apabila tombol check box dengan nama bold, pernyataan di baris nomor 59 dieksekusi dan apabila tombol check box dengan nama italic, pernyataan di baris nomor 62 dieksekusi.

Baris nomor 64 di blok metoda itemStateChanged adalah pernyataan untuk mendapatkan nama dan ukuran font yang terdapat di label. Model font label (Font.BOLD dan Font.ITALIC) kemudian dirubah berdasarkan dua tombol check box bold dan italic, sedangkan nama dan ukuran font sama dengan nama dan ukuran font label sebelumnya.

Apabila kedua tombol check box tidak dipilih (unselected) maka model font label menggunakan Font.PLAIN. Baris nomor 65 adalah pernyataan untuk merubah warna font label berdasarkan tombol check box warna. Apabila tombol check box tidak dipilih (unselected), maka warna font label adalah hitam (Color.BLACK).