我有一个LinkedHashMap<String,Object>
并且想知道将String
每个元素的部分LinkedHashMap
放入JList
.
问问题
1996 次
3 回答
1
如果 jList 对原始 Map 的变化不敏感,那么您使用的原始方法很好(比使用 Vector 更好,它具有额外的同步层)。
如果您希望 jList 在地图更改时更改,那么您将必须编写自己的 ListModel(这并不难)。您还必须弄清楚如何知道地图何时发生变化。
于 2009-06-04T21:41:01.233 回答
1
您还可以使用setListData(Vector)方法:
jList1.setListData(new Vector<String>(map.keySet()));
使用每种setListData
方法,您都在制作实际数据的副本,因此对地图的更改不会反映在列表中。您可以改为创建自定义ListModel
并将其传递给setModel
方法,但由于无法LinkedHashMap
通过索引访问 a 的任意元素,这可能是不可行的。
于 2009-06-04T21:50:16.817 回答
0
在我回答问题后就发现了这种方法,以为我会把它放在这里供社区使用。我认为这是完成它的最有效方法,但我当然愿意接受更多建议。
jList1.setListData(LinkedHashMap.keySet().toArray());
于 2009-06-04T21:15:09.413 回答