Program Java menggunakan kelas JComboBox
Program Java Menggunakan Kelas JComboBox
Contoh program berikut mendemonstrasikan penggunaan obyek kelas JComboBox (baca artikel Mengenal Kelas JComboBox Di Pemrograman Java). Obyek combo box dalam contoh ini berisi 20 daftar warna yang tersusun dari tiga warna utama yaitu red, green dan blue (RGB). Setiap warna utama diwakili oleh nilai int dengan rentang 0 – 255. Nilai int untuk setiap warna dihasilkan secara acak oleh metoda random dari kelas Math. Berikut ini adalah kode program dan hasil eksekusinya:

 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
79
80
81
82
83
84
85
// Nama file : DaftarWarna.java
// Menampilkan daftar warna dengan combo box

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

// Deklarasi kelas
public class DaftarWarna extends JFrame implements ItemListener {

   final int JUMLAH_WARNA = 20;
   private int[] r = new int[JUMLAH_WARNA];
   private int[] g = new int[JUMLAH_WARNA];
   private int[] b = new int[JUMLAH_WARNA];
   private String[] rgb = new String[JUMLAH_WARNA];
   private JComboBox comboBox;
   private JLabel label1, label2, label3;
   private JPanel panel1, panel2;

   // Kontruktor tanpa argumen
   public DaftarWarna() {

      for (int x = 0; x < JUMLAH_WARNA; x++) {
         r[x] = (int) (Math.random() * 256);
         g[x] = (int) (Math.random() * 256);
         b[x] = (int) (Math.random() * 256);

         String strRGB = " RGB = [ " + r[x] + ", " + g[x] + ", " + b[x] + " ]";
         rgb[x] = strRGB;
      }

      comboBox = new JComboBox(rgb);
      comboBox.setBackground(Color.WHITE);
      comboBox.setMaximumRowCount(5);   
      comboBox.addItemListener(this);

      Font font = new Font("Arial", Font.BOLD, 12);

      label1 = new JLabel("", JLabel.CENTER);
      label1.setFont(font);
      label2 = new JLabel("", JLabel.CENTER);
      label2.setFont(font);
      label3 = new JLabel("", JLabel.CENTER);
      label3.setFont(font);

      panel1 = new JPanel();
      panel1.setLayout(new GridLayout(1, 3));
      panel1.add(label1);
      panel1.add(label2);
      panel1.add(label3);

      panel2 = new JPanel();

      // Mengatur warna panel dan teks label pada indek 0
      panel2.setBackground(new Color(r[0], g[0], b[0]));
      label1.setText("RED : " + r[0]);
      label2.setText("GREEN : " + g[0]);
      label3.setText("BLUE : " + b[0]);

      getContentPane().add(comboBox, BorderLayout.PAGE_START);
      getContentPane().add(panel1, BorderLayout.PAGE_END);
      getContentPane().add(panel2, BorderLayout.CENTER);
   }

   // Menangani aksi
   public void itemStateChanged(ItemEvent ie) {
      int indek = comboBox.getSelectedIndex();
      panel2.setBackground(new Color(r[indek], g[indek], b[indek]));
      label1.setText("RED : " + r[indek]);
      label2.setText("GREEN : " + g[indek]);
      label3.setText("BLUE : " + b[indek]);
      repaint();
   }

   // Metoda main
   public static void main(String[] args) {
      DaftarWarna frame = new DaftarWarna();
      frame.setTitle("Kelas DaftarWarna");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setSize(270, 180);
      frame.setVisible(true);
   }
}

Contoh program Java kelas JComboBox

Perulangan for baris nomor 25 melakukan iterasi sebanyak 20 kali. Di setiap iterasi, elemen setiap indek larik r, g dan b diisi nilai int dan elemen setiap indek larik rgb diisi string. Baris nomor 34 – 37 adalah pernyataan untuk mengkonstruksi obyek combo box dengan item berasal dari elemen larik rgb, mengatur latar obyek combo box dengan warna putih, mengatur obyek combo box untuk menampilkan maksimum lima baris dan meregistrasi kelas DaftarWarna sebagai obyek pendengar.

Ketika item di combo box dipilih, blok metoda itemStateChanged dieksekusi. Baris nomor 69 adalah pernyataan untuk memperoleh indeks dari item yang dipilih. Indeks ini untuk menentukan nilai larik r, g dan b dengan indeks yang sama. Nilai ini juga digunakan sebagai argumen konstruktor warna dimana warna tersebut adalah juga argumen metoda setBackground untuk mengubah warna obyek panel. label1, label2 dan label3 di posisi paling bawah kemudian mengatur ulang string atau teks yang ditampilkan dengan merangkai string RED, GREEN dan BLUE dengan nilai dari setiap larik r, g dan b di indeks saat itu.

PRODUK TOKO GERZAL

Taffware Power Supply Station Generator Portable 84000mAh 300W - OKD320A
Taffware Power Supply Generator Portable 84000mAh 300W ...
Rp 1.947.600
(4.9/5)
Fosi Audio Amplifier Bluetooth 5.0 HiFi 2.1 Channel 165x2+350W TPA3255 - BT30D PRO-MAX
Fosi Audio BT30D PRO Amplifier Bluetooth 5.0 HiFi 2.1 Channel ...
Rp 1.787.500
(5/5)
Fosi Audio BT20A PRO Amplifier Bluetooth 5.0 Treble and Bass 300W x2 TPA3255
Fosi Audio BT20A PRO Amplifier Bluetooth 5.0 Treble and Bass ...
Rp 1.491.600
(5/5)
OTOHEROES Charger Mobil Listrik EV Swipe Card Type2 Female AC Charging - PG01
OTOHEROES Charger Mobil Listrik EV Swipe Card Type2 Female ...
Rp 3.239.600
(5/5)

Untuk daftar lengkap produk, kunjungi toko online kami, GERZAL, di marketplace Shopee, Tokopedia, dan TikTok Shop.
Harga produk di setiap marketplace berbeda-beda dan dapat berubah sewaktu-waktu.
Gunakan aplikasi saat berbelanja untuk mendapatkan potongan harga produk dan ongkos kirim, bahkan ongkos kirim gratis untuk wilayah tertentu.