0

为了制作一个项目,我在 jform 中有一些 jComboboxes,您可以在其中选择一些选项,并且当您想要编辑某些内容时,对象的某些值(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);
            }
}
4

2 回答 2

1

那么,您是否尝试覆盖toString()您的类的方法Persons
就像是:

@Override
public String toString() {
  return name + " " + firstname ;
}

此外,setSelectedItem像这样使用(我想ak是 的一个实例Persons):

coBuyer.setSelectedItem(ak);

不要忘记覆盖该equals(Object o)方法;)

@Override
public boolean equals(Object o) {
  if( o instanceof Persons ){
    boolean check = /* here your own code*/;
    return check;
  }
  return false ;
}
于 2013-08-12T19:25:07.460 回答
0

看起来 coBuyer 组合框包含 Persons 对象。您检索要选择的 Persons 对象并将其存储在 ak 中。

组合框将显示 Persons 对象的 toString() 方法。默认情况下,这会显示 Object.toString()。您需要在 Persons 类中 @Override toString() 并让它返回名称 + 名字,或者您希望组合框显示的任何内容。

于 2013-08-12T19:24:42.820 回答