Ich habe eine Person [] mit drei Personen (p1, p2, p3). Personenklasse hat zwei Attribute Name und E-Mail.Gemeinsame Nutzung des gleichen Modells zwischen zwei JComboBoxen
Ich möchte alle Namen von Person [] in einer JComboBox und alle E-Mails in einer anderen JComboBox hinzufügen.
Ich habe den folgenden Code verwendet.
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);
Aber ich möchte nicht so verwendet werden. Ich möchte die beiden Kombinationsfelder mit demselben Modell verwenden. Ich versuchte mit DefaultComboBoxModel und Override getElementAt() Methode wie folgt.
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;
}
}
}
Die oben ComboBoxModel geben Sie mir nur die Person Objekte.
Die Frage ist, wie kann ich alle Namen von Person [] in einer JComboBox und alle E-Mails in einer anderen JComboBox mit dem gleichen ComboBoxModel hinzufügen.
Danke für deine Detailerklärung .... du hast mir viel geholfen :-) –