Ух ты, ты каждый раз перестраиваешь ComboBoxModel? Разве это не дорого? Вы знаете, что существует MutableComboBoxModel
, также реализованный DefaultComboBoxModel
, который позволил бы вам добавлять / удалять элементы из вашего списка, не перестраивая его модель каждый раз?
Что касается вашего вопроса, я не понимаю утверждения
Однако, если я это сделаю, он будет работать правильно, однако он снова начнет поиск первого элемента
Вы имеете в виду, что ваш JComboBox начинает мигать с изменением контента каждый раз?
Если это так, может быть, это потому, что ваш ActionListener
связан с JComboBox
, содержание которого постоянно меняется.
В любом случае, я предлагаю вам добавить несколько журналов, например
sr = new Search(((String) jComboBoxReceiver.getSelectedItem()));
DefaultComboBoxModel model = (DefaultComboBoxModel) jComboBoxReceiver.getModel();
model.remvoeAllElements();
usrList = sr.searchUser();
String[] userList = new String[usrList.size()] ;
for(int i=0;i<usrList.size();i++){
String username = usrList.get(i).getUserName();
System.out.println(username); // feel free to instead use one loger
model.addElement(username);
}
Кроме того, я хотел бы предложить вам другой подход, в котором модель комбинированного блока не содержит простых строк, а представляет собой объекты пользователя, а ListCellRenderer
отображает только имя пользователя.