代码之家  ›  专栏  ›  技术社区  ›  Bobby

如何将LinkedHashMap的键添加到jList?

  •  1
  • Bobby  · 技术社区  · 16 年前

    我有一个 LinkedHashMap<String,Object> 想知道最有效的方法是什么 String 中每个元素的部分 LinkedHashMap 变成一个 JList .

    3 回复  |  直到 16 年前
        1
  •  1
  •   Michael Myers KitsuneYMG    16 年前

    您也可以使用 setListData(Vector) 方法:

    jList1.setListData(new Vector<String>(map.keySet())); 
    

    与每个 setListData 方法,您正在复制实际数据,因此对映射的更改不会反映在列表中。您可以创建一个自定义 ListModel 把它传给 setModel 方法,但因为无法访问 LinkedHashMap 根据索引,这可能是不可行的。

        2
  •  1
  •   Kathy Van Stone    16 年前

    如果jList对原始地图的更改不敏感,则使用的原始方法很好(优于使用矢量,后者具有额外的同步层)。

    如果您希望jlist在地图更改时进行更改,那么您必须编写自己的listmodel(这并不难)。您还必须了解如何知道地图何时更改。

        3
  •  0
  •   Bobby    16 年前

    就在我回答完这个问题后,我想我会把它放在这个社区。我认为这是最有效的方法来完成它,但肯定会接受更多的建议。

    jList1.setListData(LinkedHashMap.keySet().toArray());