JComboBox แสดง Drop-down list ให้เลือก เพียง 1 รายการในเวลาเดียวกัน ในขณะที่ JList แสดง หลายรายการ (หลายแถว) และให้เลือก หลายรายการพร้อมกัน ได้
JComboBox
- JComboBox เป็น Editable หรือ Read-only
- ใช้ ActionListener, ChangeListener, ItemListener จัดการการกระทำของผู้ใช้
- เมธอด getSelectedItem() ดึงรายการที่เลือกหรือพิมพ์
- เมธอด setEditable() เปิด/ปิดการป้อนข้อความ
- สร้าง JComboBox จาก Array หรือ Vector ใช้ ComboBoxModel จัดการ Element
ตัวอย่าง JComboBox
import java.awt.*;
import javax.swing.*;
public class JComboBoxTest extends JFrame {
JComboBoxTest() {
setTitle("JComboBox Test");
String country[] = {"India", "Aus", "Singapore", "England", "Newzealand"};
JComboBox jcb = new JComboBox(country);
setLayout(new FlowLayout());
add(jcb);
setSize(300, 250);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new JComboBoxTest();
}
}
ผลลัพธ์

JList
- JList ให้ผู้ใช้เลือก Single Selection หรือ Multiple Selections
- JList เองไม่รองรับ Scrollbar ใช้ JScrollPane ร่วมกับ JList JScrollPane จัดการ Scrollbar อัตโนมัติ
- getSelectedIndex() คืนดัชนีรายการแรกที่เลือก หรือ -1 ถ้าไม่เลือก getSelectedIndexes() คืนอาร์เรย์ดัชนีทุกตัวที่เลือก
- getSelectedValue() คืนรายการแรกที่เลือก หรือ null ถ้าไม่เลือก
- DefaultListModel ให้การ implement ง่ายสำหรับจัดการ Item ใน JList
ตัวอย่าง JList
import java.awt.*;
import javax.swing.*;
public class JListTest extends JFrame {
JListTest() {
setTitle("JList Test");
DefaultListModel dlm = new DefaultListModel();
dlm.addElement("India");
dlm.addElement("Aus");
dlm.addElement("England");
dlm.addElement("Singapore");
JList list = new JList();
list.setModel(dlm);
setLayout(new FlowLayout());
add(list);
setSize(350, 275);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String args[]) {
new JListTest();
}
}
ผลลัพธ์
