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

JComboBox显示存储在JAVA列表中的同一对象的重复副本,java,swing,arraylist,jcombobox,Java,Swing,Arraylist,Jcombobox,我有一个存储类别类型自定义对象的列表。此列表位于控制类中。填充列表没有问题,它按预期工作。当我调用View类中的populateComboBox方法时,问题就出现了 问题是:第一次调用populateComboBox方法时,JComboBox会显示列表中的所有对象。第二次调用PopulateComboxMethod时,JComboBox显示对象的重复副本 例如,如果我用两个类别类型的对象填充所述列表,让它们命名为C1和C2,并调用populateComboBox方法,JComboBox将显示C1

我有一个存储类别类型自定义对象的列表。此列表位于控制类中。填充列表没有问题,它按预期工作。当我调用View类中的populateComboBox方法时,问题就出现了

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

例如,如果我用两个类别类型的对象填充所述列表,让它们命名为C1和C2,并调用populateComboBox方法,JComboBox将显示C1 C2。第二次调用时,它显示C1 C2。第三次,C1 C2``C1 C2等等

以下是类别类的类内容:

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;
    }
}
下面是我的控制类的一部分:

public final class Control 
{
    private static List<Category> categoryList = new ArrayList<>();
    public static List<Category> getCatList()
    {
        return categoryList;
    }
}
您可以使用:

selectCatComboBox.removeAllItems();

在开始添加新项目之前。

非常感谢您的快速响应。成功了@安德烈·汤普森:我尽量把事情控制在最低限度。
selectCatComboBox.removeAllItems();