2017-03-12 27 views
-1

Listには、カテゴリタイプのカスタムobjectsが格納されています。このListControlクラスです。 Listの入力に問題はありませんが、期待どおりに動作します。問題は、私がクラスにあるpopulateComboBox()メソッドを呼び出すときに発生します。JComboBoxは、リストに格納された同じオブジェクトの重複コピーを表示します。Java

問題:populateComboBox()メソッドが呼び出される初めて、JComboBoxディスプレイList内のすべてのオブジェクト。 2回目のpopulateComboBox()メソッドが呼び出されると、JComboBoxはオブジェクトの重複コピーを表示します。

私はカテゴリータイプの2つのobjectsと言っListを取り込む場合は、とpopulateComboBox()方法、JComboBoxディスプレイC1C2を呼び出す(C1 & C2それらに名前を付けることができます)。 2回目に呼び出されると、C1C2C1C2と表示されます。三回目、C1C2C1C2``C1C2のように...ここで

は、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); 
} 
+0

@AndrewThompson私は物事を最小限に抑えようとしました。 –

答えて

1

あなたは使用することができます。

selectCatComboBox.removeAllItems(); 

新しい項目の追加を開始する前に。

+0

あなたの迅速な対応に感謝します。出来た!! –

関連する問題