У меня есть Лицо [] с тремя лицами (p1, p2, p3). Класс лица имеет два атрибута имя и email.Совместное использование одной модели между двумя JComboBoxes
Я хочу добавить все имена Person [] в один JComboBox и все письма в другой JComboBox.
Я использовал следующий код.
Person p1 = new Person("Smith", "[email protected]");
Person p2 = new Person("Tom", "[email protected]");
Person p3 = new Person("John","[email protected]");
Person[] per_arr = new Person[] { p1, p2, p3};
JFrame frame = new JFrame();
JPanel panel = new JPanel();
JComboBox<String> combo1 = new JComboBox<String>();
JComboBox<String> combo2 = new JComboBox<String>();
for (Person p : per_arr) {
combo1.addItem(p.getName());
combo2.addItem(p.getEmail());
}
panel.add(combo1);
panel.add(combo2);
frame.setContentPane(panel);
frame.pack();
frame.setVisible(true);
Но я не хочу использовать это. Я бы хотел использовать две комбинированные поля с той же моделью. Я пробовал с DefaultComboBoxModel и переопределить getElementAt() метод вроде следующего.
public class MyModel extends DefaultComboBoxModel<Object> {
public MyModel(Object[] items) {
super(items);
}
@Override
public Object getElementAt(int index) {
if (super.getElementAt(index) instanceof Person) {
return (Person)super.getElementAt(index);
} else {
return null;
}
}
}
выше ComboBoxModel дают мне только объекты Person.
Вопрос: как я могу добавить все имена Person [] в один JComboBox и все письма в другом JComboBox , используя тот же ComboBoxModel.
Спасибо за подробное объяснение .... вы мне очень помогли :-) –