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();
}
} ผลลัพธ์
