Contoh Program Menggunakan JComboBox dan JList

Share On :
Tampilan program TestJComboBox :

 Source code:
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class TestJComboBox implements ActionListener {

private JComboBox combobox1, combobox2;
private JButton button;
//private JLabel label;
private JTextField label;

//Konstruktor dari class TestJComboBox, yang nantinya akan digunakan pada
// method main()
TestJComboBox() {
//Komponen combo box untuk pilihan pertama
combobox1 = new JComboBox();
combobox1.setLocation(10, 10);
combobox1.setSize(180, 20);
combobox1.addItem("Pilih Salah Satu");
combobox1.addItem("Buah");
combobox1.addItem("Sayur");
//Ditambahkan ActionListener, berguna saat ada pemilihan salah satu item
combobox1.addActionListener(this);
//Komponen combo box untuk pilihan kedua yang akan muncul pilihannya
// saat user sudah memilih salah satu pilihan dari combobox pertama yaitu
// antara buah atau sayur
combobox2 = new JComboBox();
combobox2.setLocation(10, 40);
combobox2.setSize(180, 20);
//Komponen button untuk menampilkan pilihan user untuk combobox kedua
// yang nantinya ditampilkan pada JTextField label
button = new JButton("Pilih");
button.setLocation(10, 70);
button.setSize(180, 20);
button.addActionListener(this);
//Komponen JTextField yang berfungsi seperti label, cenderung saya pilih
// karena adanya borderline tanpa perlu membuat class Border lebih dahulu
label = new JTextField(20);
label.setLocation(10, 100);
label.setSize(180, 20);
label.setFont(new Font("Courier New", Font.PLAIN, 14));
//Dilakukan penyettingan supaya textfield tidak bisa diubah2 oleh user
label.setEditable(false);
}

//Method untuk menampilkan frame/tampilan utama program dengan menggunakan
// class JFrame
public void createAndShowGUI() {
JFrame.setDefaultLookAndFeelDecorated(false);
JFrame frame = new JFrame("Demo JComboBox");
frame.setLayout(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(combobox1);
frame.getContentPane().add(combobox2);
frame.getContentPane().add(label);
frame.getContentPane().add(button);
frame.setBounds(0, 0, 215, 180);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}

//Method utama pada class ini
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
//Terima jadi saja, intinya pake SwingUtilities dan menggunakan class
// Runnable sehingga saya dapat menggunakan method run(), anggap saja
// blok kode disini sebagai template

@Override
public void run() {
//Membuat objek TestJComboBox sesuai dengan konstruktor sebelumnya
TestJComboBox prog = new TestJComboBox();
//Memanggil method createAndShowGUI() untuk menampilkan frame utama
prog.createAndShowGUI();
}
});
}

@Override
//Method utama untuk menangani adanya event dari user seperti pemilihan combo
// box ataupun penekanan button
public void actionPerformed(ActionEvent e) {
//Dicari varible yang berisi pilihan dari user untuk combobox1
Object select1 = combobox1.getSelectedItem();
//Jika event yang terjadi adalah adanya pemilihan item dari combobox1
if (e.getSource() == combobox1) {
if (select1 == "Buah") {
//Jika yang dipilih dari combobox1 adalah buah
//Hapus terlebih dahulu semua item pada combobox2
combobox2.removeAllItems();
//Tambahkan pilihan item untuk buah
combobox2.addItem("Apel");
combobox2.addItem("Jeruk");
combobox2.addItem("Mangga");
combobox2.addItem("Anggur");
combobox2.addItem("Pir");
} else if (select1 == "Sayur") {
//Jika yang dipilih dari combobox1 adalah sayur
//Hapus terlebih dahulu semua item pada combobox2
combobox2.removeAllItems();
//Tambahkan pilihan item untuk sayur
combobox2.addItem("Timun");
combobox2.addItem("Bayam");
combobox2.addItem("Kangkung");
} else {
//Jika yang dipilih bukan keduanya atau "Pilih Salah Satu"
combobox2.removeAllItems();
}
//Jika event adalah adanya penekanan tombol button
} else if (e.getSource() == button) {
if (select1 != "Pilih Salah Satu") {
//Jika user telah memilih salah satu dari buah atau sayur
//Dicari variable select2 yang berasal dari combobox2 untuk ditampilkan
// pada label
Object select2 = combobox2.getSelectedItem();
//Dilakukan casting menjadi tipe String terlebih dahulu sebelum dikonkat
label.setText((String) select2 + " pilihan saya!");
} else {
//Jika user tidak memilih keduanya dan memilih item "Pilih Salah Satu"
label.setText("Pilih Salah Satu!");
}
}
}
}




Tampilan program TestJList :


import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public class TestJList implements ActionListener, ListSelectionListener {

private JList list;
//Untuk demo kali ini saya menggunakan class DefaultListModel sebagai input
// parameter dari JList, daripada menggunakan array, class tersebut lebih
// mudah ketika user ingin menambahkan atau menghapus salah satu list
private DefaultListModel listmodel;
//Disini saya menggunakan JScrollPane untuk menampung JList, sehingga ketika
// list sudah sangat panjang akan muncul scoller untuk dapat melihat list
// dari awal sampai akhir
private JScrollPane scroll;
//private JLabel label;
private JTextField label;
private JTextField textfield;
private JButton button1, button2;

//Konstruktor dari class TestJList, yang nantinya akan digunakan pada
// method main()
TestJList() {
//Komponen JTextField yang berfungsi seperti label, cenderung saya pilih
// karena adanya borderline tanpa perlu membuat objek Border lebih dahulu
label = new JTextField("Testing");
label.setLocation(180, 10);
label.setSize(100, 20);
label.setFont(new Font("Courier New", Font.PLAIN, 14));
label.setEditable(false);
//Membuat JList dengan membuat objek DefaultListModel tersebut dahulu
listmodel = new DefaultListModel();
list = new JList(listmodel);
//List yang saya buat disini hanya bisa dipilih satu element saja
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
//Objek list saya beri ListSelectionListener sehingga dapat diterima event
// saat user memilih salah satu list
list.addListSelectionListener(this);
//Pada awal list, saya beri dua item/element, untuk menambahkan element
// digunakan method addElement pada objek list yang telah di-casting
// menjadi tipe DefaultListModel
((DefaultListModel) list.getModel()).addElement("Satu");
((DefaultListModel) list.getModel()).addElement("Dua");
//Membuat objek scroller untuk menampung JList
scroll = new JScrollPane(list);
scroll.setLocation(10, 10);
scroll.setSize(150, 160);
//Objek textfield ini akan menerima string dari user sebagai element/item
// yang akan ditambahkan oleh user
textfield = new JTextField(10);
textfield.setLocation(180, 40);
textfield.setSize(100, 20);
//Objek button1 adalah button yang digunakan untuk menambahkan element list
// yang baru
button1 = new JButton("Tambah");
button1.setLocation(180, 70);
button1.setSize(100, 20);
button1.addActionListener(this);
//Objek button1 adalah button yang digunakan untuk menghapus element list
// yang baru
button2 = new JButton("Hapus");
button2.setLocation(180, 100);
button2.setSize(100, 20);
button2.addActionListener(this);
}

//Method untuk menampilkan frame/tampilan utama program dengan menggunakan
// class JFrame
public void createAndShowGUI() {
JFrame.setDefaultLookAndFeelDecorated(false);
JFrame frame = new JFrame("Demo JList");
frame.setLayout(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(scroll);
frame.getContentPane().add(label);
frame.getContentPane().add(button1);
frame.getContentPane().add(button2);
frame.getContentPane().add(textfield);
frame.setBounds(0, 0, 320, 230);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}

public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
//Terima jadi saja, intinya pake SwingUtilities dan menggunakan class
// Runnable sehingga saya dapat menggunakan method run(), anggap saja
// blok kode disini sebagai template

@Override
public void run() {
//Membuat objek TestJList sesuai dengan konstruktor sebelumnya
TestJList prog = new TestJList();
//Memanggil method createAndShowGUI() untuk menampilkan frame utama
prog.createAndShowGUI();
}
});
}

@Override
//Method utama untuk menangani adanya event dari user yaitu penekanan button
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button1) {
//Apabila user menekan button1 untuk menambahkan element list yang baru
String text = textfield.getText();
//Didapatkan variable text yang berasal dari textfield yang dibuat
// sebelumnya
if (!text.equals("")) {
//Jika isi dari textfield tidak kosong
//Untuk menambahkan sama seperti sebelumnya, tinggal memasukkan variable
// text pada input method addElement
((DefaultListModel) list.getModel()).addElement(text);
} else {
//Jika textfield kosong, ditampilkan pada label tulisan "Tulis List!"
label.setText("Tulis List!");
}
} else if (e.getSource() == button2) {
//Apabila user menekan button1 untuk menghapus element list yang baru
//Dicari terlebih dahulu index dari element list yang akan dihapus
int index = list.getSelectedIndex();
if (index != -1) {
//Jika user sudah memilih salah satu item/element pada JList
label.setText("Deleted");
//Untuk menghapus salah satu element dapat digunakan method remove(),
// sama seperti saat menambahkan element, objek list di-casting
// terlebih dahulu menjadi tipe DefaultListModel
((DefaultListModel) list.getModel()).remove(index);
} else {
//Jika user belum memilih salah satu element, ditampilkan pada label
// pesan "Pilih List!"
label.setText("Pilih List!");
}
}
}

@Override
//Method ini bekerja saat user memilih salah satu list (dalam hal ini di-klik)
// sehingga salah satu element list diberi warna background berbeda, silahkan
// menjalankan program untuk lebih jelasnya
public void valueChanged(ListSelectionEvent e) {
//Ketika user menekan salah satu list, maka method ini akan bekerja dan
// karena hanya ada dari list sebenarnya percabangan (if) ini bisa dibuang
if (e.getSource() == list) {
//Sebelumnya dicari terlebih dahulu element mana yang telah dipilih
int index = list.getSelectedIndex();
//Jika tidak terjadi event penghapusan element list, maka akan ditampikan
// pada label item/element yang dipilih
if (index != -1) {
String listtext = (String) list.getModel().getElementAt(index);
label.setText(listtext);
}
}
}
}

0 komentar:

Post a Comment

  • Mahasiswa STMIK Duta Bangsa
  • description
  • description
  • description
  • description
  • description
  • description
  • description

Free Hosting

Free Hosting

My Blog List

A
B
C
     
D
E
F
DuGMp3    
G
H
I
Goo Otomotif HouseofScript  
J
K
L
Java Hotline    
M
N
O

My Games Collection

MeLangKah LeBih MaJu

   
P
Q
R
Pamella Decoration    
S
T
U
Studied WaLL    
V
W
X
     
Y
Z
0-9
     









Join....!


Free Domain

Free Domain

SiNyO. Powered by Blogger.