एक JComboBox JComponent . का उपवर्ग है वर्ग और यह एक पाठ क्षेत्र . का संयोजन है और एक ड्रॉप-डाउन सूची जिसमें से उपयोगकर्ता एक मूल्य चुन सकता है। एक JComboBox एक ActionListener, ChangeListener, . उत्पन्न कर सकता है और आइटम लिस्टनर इंटरफेस जब उपयोगकर्ता कॉम्बो बॉक्स पर कार्रवाई करता है। डिफ़ॉल्ट रूप से, एक JComboBox आइटम को सॉर्ट करने के लिए समर्थन नहीं करता है, हम DefaultComboBoxModel का विस्तार करके कोड को कस्टमाइज़ कर सकते हैं। कक्षा।
उदाहरण
import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.*; public class JComboBoxSorterTest extends JFrame { private JComboBox comboBox; private JTextField textField; public JComboBoxSorterTest() { setTitle("JComboBoxSorter Test"); setLayout(new FlowLayout()); textField = new JTextField(10); textField.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { comboBox.addItem(textField.getText()); textField.setText(""); comboBox.showPopup(); } }); String[] items = {"raja", "archana", "vineet", "krishna", "adithya"}; SortedComboBoxModel model = new SortedComboBoxModel(items); comboBox = new JComboBox(model); comboBox.setPrototypeDisplayValue("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); Box box1 = Box.createHorizontalBox(); box1.add(new JLabel("Enter a name and hit enter ")); box1.add(textField); Box box2 = Box.createHorizontalBox(); box2.add(comboBox); add(box1); add(box2); setSize(375, 250); setDefaultCloseOperation(EXIT_ON_CLOSE); setLocationRelativeTo(null); setVisible(true); } // Customize the code for sorting of items in the JComboBox private class SortedComboBoxModel extends DefaultComboBoxModel { public SortedComboBoxModel() { super(); } public SortedComboBoxModel(Object[] items) { Arrays.sort(items); int size = items.length; for (int i = 0; i < size; i++) { super.addElement(items[i]); } setSelectedItem(items[0]); } public SortedComboBoxModel(Vector items) { Collections.sort(items); int size = items.size(); for (int i = 0; i < size; i++) { super.addElement(items.elementAt(i)); } setSelectedItem(items.elementAt(0)); } public void addElement(Object element) { insertElementAt(element, 0); } public void insertElementAt(Object element, int index) { int size = getSize(); for (index = 0; index < size; index++) { Comparable c = (Comparable) getElementAt(index); if (c.compareTo(element) > 0) { break; } } super.insertElementAt(element, index); } } public static void main(String[] args) { new JComboBoxSorterTest(); } }
आउटपुट