2
我有人[]與三個人(P1,P2,P3)。人員類別有兩個屬性名稱和電子郵件。共享相同的模型JComboBoxes之間的兩個
我想補充一個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對象。
問題是如何在一個JComboBox中添加Person []的所有名稱,以及使用相同ComboBoxModel的另一個JComboBox 中的所有電子郵件。
感謝您的詳細解釋....你幫了我很多:-) –