A 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(); } }
আউটপুট