gpt4 book ai didi

java - 从 Jcombobox 中删除特定项目

转载 作者:行者123 更新时间:2023-11-29 07:07:37 26 4
gpt4 key购买 nike

我正在使用 DefaultComboBoxModel 和自定义项填充组合框。每个项目都包含一个 ID 和一个名称。我正在遍历一个表,并且基于一个选择,我想从组合框中删除选定的元素。对于我要删除的项目,我从正在迭代的表中获得了 ID 和名称。我尝试使用接收对象的 removeItem。我将 ID 和名称传递到我的自定义 Item 构造函数中,但这似乎不起作用。谁能告诉我我在这里缺少什么?

填充组合框的代码:

Vector<Object> companyList = new Vector<Object>();
while(rs.next()){
companyList.addElement(new Item(rs.getInt(1),rs.getString(2)));
}
DefaultComboBoxModel cmod = new DefaultComboBoxModel(companyList);
companyName.setModel(cmod);

自定义项目代码:

class Item
{
private int id;
private String name;

public Item(int id, String name)
{
this.id = id;
this.name = name;
}

public int getId()
{
return id;
}

public String getName()
{
return name;
}

public String toString()
{
return name;
}
}

删除项目的代码(本例中的硬编码):

 companyName.removeItem(new Item(50002,"ALLIED WASTE SYSTEMS"));

removeItem 说它接受一个对象,所以我不确定为什么这行不通。任何帮助将不胜感激!

最佳答案

您的类 Item 不会覆盖 equals()hashCode() 以便“相等”的项目比较相等。您需要实现这两个方法来满足集合类所需的契约。

关于java - 从 Jcombobox 中删除特定项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18066729/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com