JComboBox হলো JComponent ক্লাসের একটি সাবক্লাস এবং এটি একটি টেক্সট ফিল্ড এবং একটি ড্রপ-ডাউন লিস্ট-এর কম্বিনেশন য থেকে ইউজার একটি ভ্যালু সিলেক্ট করতে পারে। JComboBox ActionListener, ChangeListener, এবং ItemListener ইন্টারফেস জেনারেট করতে পারে যখন ইউজার কম্বো বক্সে একশন নেয়। ডিফল্টভাবে, 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);
}
// 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();
}
}
আউটপুট
