Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

วิธีทำ JComboBox ที่แก้ไขได้ (Editable) ใน Java

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();
    }
}

ผลลัพธ์

วิธีทำ JComboBox ที่แก้ไขได้ (Editable) ใน Java