Для удобства вы можете использовать вектор, хотя он считается немного устаревшим. кстати вы храните имена в
ArrayList<String>
или
ArrayList<Customer>
? Для первого вы можете попробовать:
ArrayList<String> list = ...
JComboBox<String> comboBox = new JComboBox<>(new Vector<>(list));
или использовать Вектор с самого первого, если вы не против. Я бы предпочел дженерики. Действительно, использование массива для сборки JComboBox также является допустимым.
Для последнего вы можете работать с DefaultListCellRenderer. См. this. Переопределите getListCellRendererComponent(), чтобы добавить клиента в свой JComboBox и выполнить его самостоятельно. (Это тем более желательный способ, как вы можете установить и получить клиент непосредственно.)
изменения: в соответствии с вашим кодом, я предлагаю следующее:
JComboBox<Customer> comboBox = new JComboBox<>(new Vector<>(cusList));
comboBox.setRenderer(new DefaultListCellRenderer() {
@Override
public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
JLabel label = (JLabel)super.getListCellRendererComponent(list,value,index,isSelected,cellHasFocus);
label.setText(((Customer)value).getName());
return label;
}
});