я пытаюсь заполнить свою JComboBox со следующими пунктами:JComboBox набор выбранный элемент не работает должным образом
public class DropDownItem {
private String text;
private int id;
public void setText(String text) {
this.text = text;
}
public void setId(int id) {
this.id = id;
}
public String toString() {
return text;
}
public int getId() {
return id;
}
public boolean equals(Object i) {
System.out.println("i is: " + i);
if(i instanceof Integer) {
if((Integer)i == (Integer)id) {
System.out.println("It's me!");
return true;
}
else {
System.out.println("I was asked if I was " + (Integer)i + " but I'm " + id + " as I'm " + text);
return super.equals(i);
}
}
else return super.equals(i);
}
}
Однако у меня возникают проблемы с использованием JComboBox-х setSelectedItem
. Я передаю setSelectItem
int, и, как вы можете видеть сверху, я попытался убедиться, что он выбран, когда он правильный. Проблема, с которой я столкнулась, заключается в том, что проверяется только текущий выбранный элемент, что для меня очень странно. Я подтвердил это, добавив заявление о печати, которое только распечатывается один раз ..
Любые идеи?
Thanks
Но дело в том, что я передаю setSelectedItem целое число (считанное из базы данных). А также, объект является Integer один раз, поскольку мой оператор печати выполняется. – jtnire
Возможно, объект из базы данных является Integer, но объекты в комбинированной коробке - это «DropDownItem». Поэтому Integer никогда не может быть равен DropDownItem. См. «Edit» сверху для примера кода. – camickr
Hmm ok then, так как бы я пошел о выбранном элементе на основе только целого из базы данных? – jtnire