import java.awt.BorderLayout; import java.util.ArrayList; import java.util.Collection; import javax.swing.AbstractListModel; import javax.swing.ComboBoxModel; import javax.swing.JComboBox; import javax.swing.JFrame; class ArrayListComboBoxModel extends AbstractListModel implements ComboBoxModel { private Object selectedItem; private ArrayList anArrayList; public ArrayListComboBoxModel(ArrayList arrayList) { anArrayList = arrayList; } public Object getSelectedItem() { return selectedItem; } public void setSelectedItem(Object newValue) { selectedItem = newValue; } public int getSize() { return anArrayList.size(); } public Object getElementAt(int i) { return anArrayList.get(i); } } public class ArrayListComboBoxModelDemo { public static void main(String args[]) { JFrame frame = new JFrame("ArrayListComboBoxModel"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); ArrayList<Object> arrayList = new ArrayList<Object>(); arrayList.add("A"); arrayList.add("B"); arrayList.add("C"); ArrayListComboBoxModel model = new ArrayListComboBoxModel(arrayList); JComboBox comboBox = new JComboBox(model); frame.add(comboBox, BorderLayout.NORTH); frame.setSize(300, 225); frame.setVisible(true); } }