【问题标题】:setSelectedItem to jcomboboxsetSelectedItem 到 jcombobox
【发布时间】:2013-08-12 18:55:23
【问题描述】:

为了制作一个项目,我在 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);
            }
}

【问题讨论】:

    标签: java swing jcombobox


    【解决方案1】:

    那么,您是否尝试覆盖您的类 PersonstoString() 方法?
    比如:

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

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

    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 ;
    }
    

    【讨论】:

    • 我必须在哪里重写 equals 方法?在表单的类中还是在 Persons 类中?
    • 已经感谢你的帮助,但我不知道我必须在 equals 方法中写什么,所以如果你能帮助我。
    • @Boe 在没有代码的情况下无法帮助您,总而言之,您必须检查o 是否像我的示例中的this
    • @Boe 不客气!感谢您的最佳答案:)
    【解决方案2】:

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

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

    【讨论】:

    • 我有这个 @Override public String toString() { StringBuilder bf = new StringBuilder(name + " " + firstname + "\n");返回 bf.toString(); }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多