要制作一个项目,我在jform中有一些jCobobox,你可以选择一些选项,当你想编辑某些东西时,某个对象的值(toString)会显示在另一个具有所选值的jform的jcombobox中。但它不想在组合框中显示值。我想在组合框中显示名称+名字(toString)
try {
ak = pdb.seekPerson(v.getBuyerId());
coKoper.removeAllItems();
} catch (ApplicationException ae) {
javax.swing.JOptionPane.showMessageDialog(this, ae.getMessage());
}
initiateCombo(); //adds the objects tot the combo
coBuyer.setSelectedItem(ak.toString());
}
private void initiateCombo() {
PersonDB pdb = new PersonDB();
try {
ArrayList<Persons> buyer = pdb.seekAllBuyers();
for (Persons p : buyer) {
coBuyer.addItem(p);
}
}
答案 0 :(得分:0)
看起来coBuyer组合框包含Persons对象。您检索要选择的Persons对象并将其存储在ak中。
组合框将显示Persons对象的toString()方法。默认情况下,它显示Object.toString()。你需要在Persons类中使用@Override toString()并让它返回name + firstname,或者你想要组合框显示的任何内容。
答案 1 :(得分:0)
那么,您是否尝试覆盖班级toString()
的{{1}}方法?
类似的东西:
Persons
此外,像这样使用@Override
public String toString() {
return name + " " + firstname ;
}
(我认为setSelectedItem
是ak
的实例):
Persons
不要忘记覆盖coBuyer.setSelectedItem(ak);
方法;)
equals(Object o)