Java tutorial
import java.awt.BorderLayout; import java.util.Arrays; import java.util.Collections; import java.util.Vector; import javax.swing.DefaultComboBoxModel; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; public class Main extends JFrame { String[] items = { "one", "two", "three", "four", "five" }; SortedComboBoxModel model = new SortedComboBoxModel(items); JComboBox comboBox = new JComboBox(model); JTextField textField = new JTextField(15); public Main() { textField.addActionListener(e -> { comboBox.addItem(textField.getText()); textField.setText(""); comboBox.showPopup(); }); JFrame frame = new JFrame(); frame.setDefaultCloseOperation(EXIT_ON_CLOSE); frame.add(comboBox, BorderLayout.SOUTH); frame.add(textField, BorderLayout.WEST); frame.add(new JLabel("Enter to add Item "), BorderLayout.EAST); frame.pack(); frame.setVisible(true); } public static void main(String[] args) { new Main(); } } 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)); } @Override public void addElement(Object element) { insertElementAt(element, 0); } @Override 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); } }