Возвращает индекс = 0. Поскольку метод getSelectedIndex()
использует .equals
для объектов, находящихся в JComboBox, и сравнивает его с выбранным. В вашем случае, поскольку item1 также имеет индекс 0, он находит условие true и возвращает 0. Если вы хотите получить другой индекс, вам нужно переопределить метод getSelectedIndex()
.
Схема по умолчанию getSelectedIndex()
метода JComboBox, найденного в Java2s :
public int getSelectedIndex() {
Object sObject = dataModel.getSelectedItem();
int i, c;
Object obj;
for (i = 0, c = dataModel.getSize(); i < c; i++) {
obj = dataModel.getElementAt(i);
if (obj != null && obj.equals(sObject))
return i;
}
return -1;
}
У вас должно быть что-то [может быть itemName, если у объекта item есть имя или что-то еще], отличающееся в 2 записях, чтобы получить желаемый результат. Переопределите getSelectedIndex()
и сравните то, что должно отличаться во всех. Если обе записи полностью совпадают, то какой смысл добавлять их дважды?