JComboBox显示存储在List JAVA中的同一对象的重复副本

时间:2017-03-12 17:03:53

标签: java swing arraylist jcombobox

我有List存储类别类型的自定义objects。此List位于Control级。填充List没有问题,它按预期工作。当我调用populateComboBox()类中的View方法时会出现问题。

问题:第一次调用populateComboBox()方法时,JComboBox会显示List中的所有对象。第二次调用populateComboBox()方法时,JComboBox显示对象的重复副本。

示例如果我使用两个List类别类型填充所述objects(让我们将其命名为C1& C2)并调用populateComboBox()方法,JComboBox显示C1 C2。第二次调用时,会显示C1 C2 C1 C2。第三次,C1 C2 C1 C2``C1 C2等等......

以下是Category类的类内容:

public class Category 
{
    private String catName; 

    public Category()
    {

    }

    public Category(String str)    {
        this.catName = str;
    }


    public String getCatName() 
    {
        return catName;
    }


    @Override
    public String toString()
    {
        return catName;
    }
}

以下是我的Control类的一部分:

public final class Control 
{
    private static List<Category> categoryList = new ArrayList<>();
    public static List<Category> getCatList()
    {
        return categoryList;
    }
}

以下是视图类中populateComboBox()方法的内容:

{
    List<Category> catList = Control.getCatList();
    for(Category cat: catList)
        {
            selectCatComboBox.addItem(cat);
        }
        addItemDialog.setVisible(true); 
}

1 个答案:

答案 0 :(得分:1)

您可以使用:

UIPickerView

开始添加新项目之前。