BAB II Manggunakan JComboBox Sebuah JComboBox, yang memungkinkan pengguna memilih salah satu dari beberapa pilihan, dapat memiliki dua bentuk yang sangat berbeda. Bentuk default adalah kotak kombo bisa diedit, yang menampilkan sebuah tombol dan drop-down daftar nilai. Bentuk kedua, yang disebut kotak kombo yang dapat diedit, fitur kolom teks dengan tombol kecil. Pengguna dapat mengetik nilai pada kolom teks atau klik tombol untuk menampilkan daftar drop-down.
Constructor JComboBox() Menciptakan sebuah JComboBox dengan model data default. JComboBox(ComboBoxModel aModel) Menciptakan suatu ComboBox yang mengambil materi nya dari suatu ComboBox model yang ada.
JComboBox(Object[] items) Menciptakan suatu JComboBox yang berisi element pada array
JComboBox(Vector items) Menciptakan suatu JComboBox yang berisi element vektor.
Method void addItem(Object anObject)
menambahkan isi element pada JComboBox Object getItemAt(int index) menghasilkan nilai isi elemen pada posisi index int getItemCount()
mengahaslilkan nilai integer jumlah elemen pada komponent JComboBox void insertItemAt(Object anObject, int index)
Menyisipkan sejulah elemen pada posisi tertentu void removeAllItems()
Menghapus semua isi elemen void removeItemAt(int anIndex)
Menghapus elemen tertentu Kuliah Pemrograman Desktop Java [Badiyanto, S..Kom. M.Kom] …………………
15
Contoh : Kode berikut, diambil dari ComboBoxDemo.java, menciptakan kotak kombo diedit dan set it up: String[] buahStrings = {"Nangka","Jambu","Durian","Apel","Mangga"}; / / Buat combo box, pilih item pada indeks 4. / / Indeks dimulai dari 0, jadi 4 JComboBox buahList = new JComboBox(buahStrings); buahList.setSelectedIndex(4); buahList.addActionListener(this);
Latihan : 1. Buatlah rancangan seperti pada gambar; Komponen JLabel JLabel JLabel JLabel JcomboBox
JTextField JTextField JTextField
Properti setName setText setName setText setName setText setName setText setName model setName setText setName setText setName setText
Isi jLabel1 Pilihan jLabel2 Nilai Posisi (Index) jLabel3 HasilPilihan jLabel4 Jumlah Pilihan jComboBoxPilihan
Item 1, Item 2, Item 3, Item 4 jTextFieldHasil kosongkan jTextFieldIndex kosongkan jTextFieldJumlah kosongkan
Sehingga pada bagian deklarasi variabel seperti pada kode program berikut : // Variables declaration - do not modify private javax.swing.JComboBox jComboBoxPilihan; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JTextField jTextFieldHasil; private javax.swing.JTextField jTextFieldIndex; private javax.swing.JTextField jTextFieldJumlah; // End of variables declaration
Untuk mengisikan pilihan kombo maka bisa dengan cara, Kuliah Pemrograman Desktop Java [Badiyanto, S..Kom. M.Kom] …………………
16
• Klik pada JComboBox jComboBoxPilihan • Pilih Properties • Pilih model, Kemudian isikan pilihannya, secara default berisi {“Item1”, “Item2”, “Item3”, “Item4”}
Proses jika pilihan di klik komponen jTextFieldIndex berisi nilai index, jTextFieldHasil nilai yang dipilih, jTextFieldJumlah mananpilkan banyak elemen dalam kombo, caranya adalah sebagai berikut : • Klik pada komponen jComboBoxPilihan • Klik kiri tombol mouse pilih event • Pilih dan klik MouseClicked •
Masukan kode program berikut :
private void jComboBoxPilihanMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here: int i = jComboBoxPilihan.getSelectedIndex(); jTextFieldIndex.setText(""+i); jTextFieldHasil.setText( jComboBoxPilihan.getItemAt(i).toString()); int jml = jComboBoxPilihan.getItemCount(); jTextFieldJumlah.setText(""+jml); }
Penjelasan : jComboBoxPilihan secara default menggunakan tombol drop-down jComboBoxPilihan.getSelectedIndex();
Kuliah Pemrograman Desktop Java [Badiyanto, S..Kom. M.Kom] …………………
17
adalah methode untuk memperoleh nilai index janis integer, dari posisi larik dalam kombo pilihan. jComboBoxPilihan.getItemAt(i).toString());
adalah methode untuk memperleh isi elemen yang terdapat dalam kombo pilihan, dengan parameter i sebagai nilai index, atau posisi larik, dengan hasil pengembalian nilai String. Agar supaya isian kombo bisa diubah nilai sisannya maka tambah kan methode berikut ini. jComboBoxPilihan.setEditable(true);
Hasil :
2. Mangisikan Combo Box Lewat Kode Program Ada beberapa cara mengisikan JComboBox, bisa seperti di atas dan juga mengisikan lewat kode program. Isian JCombox akan terisi ketikan From JFrame dijalankan. Maka perlu ditambahkan program pada event formWindowOpened(java.awt.event.WindowEvent evt)
Kemudian ketikkan kode program berikut ini : private void formWindowOpened(java.awt.event.WindowEvent evt) { // TODO add your handling code here: jComboBoxPilihan.addItem("Yogyakarta"); jComboBoxPilihan.addItem("Sleman");
Kuliah Pemrograman Desktop Java [Badiyanto, S..Kom. M.Kom] …………………
18
jComboBoxPilihan.addItem("Wonosari"); jComboBoxPilihan.addItem("Bantul"); jComboBoxPilihan.addItem("Wates"); //mengunakan loop for (int i=0; i<100; i++ ) { jComboBoxAngka.addItem(""+i); } }
Penjelasan for (int i=0; i<100; i++ ) { jComboBoxAngka.addItem(""+i);}
Adalah mengisikan ComboBox angka 0 sampai 99 menggunakan loop for
Kode program event jComboBoxPilihanMouseClicked() private void jComboBoxPilihanMouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here: int i = jComboBoxPilihan.getSelectedIndex(); jTextFieldIndex.setText(""+i); jTextFieldHasil.setText(jComboBoxPilihan.getItemAt(i).toString()); int jml = jComboBoxPilihan.getItemCount(); jTextFieldJumlah.setText(""+jml);
Kuliah Pemrograman Desktop Java [Badiyanto, S..Kom. M.Kom] …………………
19
}
3. Menjumlahkan isi JcomboBox Buatlah rancangan form baru, dan tetukan klas/komponennya isi properties sebagai berikut : Komponen JLabel JLabel JLabel JLabel JButton JcomboBox
JTextField JTextField JTextField
Properti setName setText setName setText setName setText setName setText setName setText setName model setName setText setName setText setName setText
Isi jLabel1 Pilihan 1 jLabel2 Jumlah Elemen jLabel2 Jumlah Isi Elemen jLabel2 Rata-rata jButton1 Jumlahkan isi pilihan jComboBoxPil1 kosongkan jTextFieldJmlEl kosongkan
jTextFieldJumIsiEl kosongkan
jTextFieldRata2 kosongkan
Sehingga pada bagian deklarasi variabel membentuk program berikut : private javax.swing.JButton jButton1; private javax.swing.JComboBox jComboBoxPil1; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JTextField jTextFieldJmlEl; private javax.swing.JTextField jTextFieldJumIsiEl; private javax.swing.JTextField jTextFieldRata2; // End of variables declaration
Kuliah Pemrograman Desktop Java [Badiyanto, S..Kom. M.Kom] …………………
20
Mengisikan pilihan dalam JcomboBox dengan menggunakan rumus, pada event, jendela Jframe dijalankan. • Klik pada Jframe • Klik tombol kiri mouse • Pilih events • Pilih Window • Pilih WindowOpened • Masukan kode program berikut : private void formWindowOpened(java.awt.event.WindowEvent evt) { // TODO add your handling code here: for (int j=0; j<=100; j+=11) { jComboBoxPil1.addItem(""+j); } }
Proses pada tombol “Jumlahkan isi pilihan “ • Klik pada Button “Jumlankan isi pilihan “ • Klik tombol kiri mouse • Pilih events • Pilih Mouse • Pilih MouseClicked • Masukan kode program berikut : private void jButton1MouseClicked(java.awt.event.MouseEvent evt) { // TODO add your handling code here:
Kuliah Pemrograman Desktop Java [Badiyanto, S..Kom. M.Kom] …………………
21
float jumlahIsi=0; float jumlahElemen = jComboBoxPil1.getItemCount(); for (int j=0; j<=jumlahElemen-1; j++ ) { float el = Integer.parseInt(jComboBoxPil1.getItemAt(j). toString()); jumlahIsi=jumlahIsi+el; } float rataRata=jumlahIsi/jumlahElemen; jTextFieldJmlEl.setText(""+jumlahElemen); jTextFieldJumIsiEl.setText(""+jumlahIsi); jTextFieldRata2.setText(Float.toString(rataRata)); }
Soal Buatlah JComboBox pilihan kota, jika kota asal terpilih, kemudian saat menekan tombol Pindhkan>> isinya akan dipindahkan ke kotak Kota dipindahkan. Berarti ketika isinya kotak asal dihapus satu dan ditambahkan ke kota Kota pindahan, seperti terlihat pada gambar berikut :
Kuliah Pemrograman Desktop Java [Badiyanto, S..Kom. M.Kom] …………………
22