JComboBox
- A JComboBox สามารถขยาย JComponent class และมันคือการรวมกันของ ฟิลด์ข้อความ และ รายการแบบเลื่อนลง ซึ่งผู้ใช้สามารถเลือกค่าได้
- ถ้าส่วนฟิลด์ข้อความของตัวควบคุมสามารถแก้ไขได้ ผู้ใช้สามารถป้อนค่าในฟิลด์หรือแก้ไขค่าที่ดึงมาจากรายการดรอปดาวน์
- โดยค่าเริ่มต้น ผู้ใช้ไม่ได้รับอนุญาตให้แก้ไขข้อมูลในส่วนฟิลด์ข้อความของ JComboBox . หากเราต้องการอนุญาตให้ผู้ใช้แก้ไขฟิลด์ข้อความ ให้เรียก setEditable(true) วิธีการ
- A JComboBox สามารถสร้าง ActionListener , ChangeListener หรือ ItemListener เมื่อผู้ใช้ดำเนินการกับกล่องคำสั่งผสม
- A getSelectedItem() สามารถใช้เพื่อรับรายการที่เลือกหรือป้อนจาก JComboBox ได้
ตัวอย่าง
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(); } }
ผลลัพธ์