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

有帮助吗?

解决方案

您还可以使用 设置列表数据(向量) 方法:

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

与每一个 setListData 方法,您正在复制实际数据,因此对地图的更改不会反映在列表中。您可以改为创建一个自定义 ListModel 并将其传递给 setModel 方法代替,但是因为没有办法访问 a 的任意元素 LinkedHashMap 从索引来看,这可能是不可行的。

其他提示

如果所述的jList不是原始地图的变化是敏感的,则使用的原始方法是细(比使用向量,其具有sychronization的额外层更好)。

如果您想要的jList改变时,地图上的变化,那么你将不得不写自己的ListModel(这并不难)。你还必须弄清楚如何知道地图发生变化时。

发现这个办法做到这一点就在我回答这个问题,以为我会把它在这里的社区。我认为这是把它做的最有效的方式,但我肯定是开放的更多建议。

jList1.setListData(LinkedHashMap.keySet().toArray());
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top