如何使用hashmap键填充组合框?

时间:2018-02-02 10:14:49

标签: java arraylist combobox hashmap

我有一个HashMap,我想用HashMap的键填充一个下拉列表。 HashMap类型为:HashMap<String, ArrayList<String>>

例如,HashMap数据是:

{A=[Ananas, Apple, Avocado], B=[Banana, Blueberries], C=[Cherries]}

那么我想要一个只有ABC的下拉列表。

我尝试了两种方法,但在这两种情况下,我都会在下拉列表中获得多个键。例如A, B, C, B, C。有人能解释我为什么吗?

我试过的两种方式:

    for (String key : FruitMap.keySet()) {
        Dropdown.addItem(key);
    }

    for (Map.Entry<String, ArrayList<String>> entry : FruitMap.entrySet()){
        String key = entry.getKey();
        Dropdown.addItem(key);

    }

2 个答案:

答案 0 :(得分:1)

你提到的两种方式是正确的,但是,我会补充说:

Dropdown.removeAllItems();
在循环之前

答案 1 :(得分:0)

我是这样做的:

DefaultComboBoxModel dcm = new DefaultComboBoxModel(new Vector<>(Map.keySet()));
Combo = new JComboBox(dcm);

这也对我有用:

DefaultComboBoxModel dcm = new DefaultComboBoxModel();
dcm.addAll(Map.keySet());
ComboBox = new JComboBox(dcm);