JComboBox
- JComboBox ขยายจาก JComponent รวม ช่องข้อความ และ รายการแบบเลื่อนลง (drop-down list) ให้ผู้ใช้เลือกค่า
- ถ้าส่วนช่องข้อความ editable ผู้ใช้สามารถพิมพ์ค่าใหม่หรือแก้ไขค่าจากรายการได้
- ค่าเริ่มต้นไม่ให้แก้ไขข้อมูลในช่องข้อความ ใช้ setEditable(true) เพื่ออนุญาต
- JComboBox สร้าง ActionListener, ChangeListener, ItemListener เมื่อผู้ใช้กระทำ
- เมธอด getSelectedItem() ใช้ดึงรายการที่เลือกหรือพิมพ์เข้ามา
ตัวอย่างโค้ด
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class JEditableComboBoxTest extends JFrame {
public JEditableComboBoxTest() {
setTitle("JEditableComboBox Test");
setLayout(new BorderLayout());
final JComboBox combobox = new JComboBox();
final JList list = new JList(new DefaultListModel());
add(BorderLayout.NORTH, combobox);
add(BorderLayout.CENTER, list);
combobox.setEditable(true);
combobox.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent ie) {
if (ie.getStateChange() == ItemEvent.SELECTED) {
((DefaultListModel) list.getModel()).addElement(combobox.getSelectedItem());
combobox.insertItemAt(combobox.getSelectedItem(), 0);
}
}
});
setSize(new Dimension(375, 250));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) throws Exception {
new JEditableComboBoxTest();
}
}
ผลลัพธ์
