Java 将项目从映射添加到JComboBox
很抱歉,我没有任何代码,但需要一些建议,有没有一种方法可以将项目从映射添加到JComboBox,以便在添加和删除新项目时动态更改Java 将项目从映射添加到JComboBox,java,swing,maps,jcombobox,Java,Swing,Maps,Jcombobox,很抱歉,我没有任何代码,但需要一些建议,有没有一种方法可以将项目从映射添加到JComboBox,以便在添加和删除新项目时动态更改 谢谢。要更新您的组合框,您可以使用以下内容 // due to order problem, transfer of elements from map to combo box have sence // for ordered maps, like LinkedHashMap or TreeMap Map<String, String> strMap
谢谢。要更新您的组合框,您可以使用以下内容
// due to order problem, transfer of elements from map to combo box have sence
// for ordered maps, like LinkedHashMap or TreeMap
Map<String, String> strMap = new LinkedHashMap<>();
// fill map...
JComboBox<String> combo = new JComboBox<>();
// some code...
// now update the combo box content
combo.setModel(new DefaultComboBoxModel<>(strMap.values().toArray(new String[0])));
//由于顺序问题,将元素从映射转移到组合框有意义
//对于有序映射,如LinkedHashMap或TreeMap
Map strMap=newlinkedhashmap();
//填充地图。。。
JComboBox组合=新的JComboBox();
//一些代码。。。
//现在更新组合框内容
setModel(新的DefaultComboxModel(strMap.values().toArray(新字符串[0]));
当您以此处的形式发布代码时,可能会有更多的帮助 您可以直接使用hashmap的值,使用
yourMap.values().forEach((value)-> {
// Do whatever your want with each value.
});
地图有键和值。您想在组合框中插入什么?有些贴图没有顺序,所以每次将元素从贴图转移到combobox时,都会得到不同的元素顺序。
Map
和combobox之间的动态同步是不可能的,因为标准Map实现(如HashMap
或HashTable
)不会触发任何更改事件。哦,对了,感谢您的澄清!JComboxBox上的HashMap值不确定这是否可行,但仅用于上下文如果我有一个add按钮向该HashMap添加项目,我是否可以触发此add按钮根据新的HashMap重新绘制JComboxBox?当我使用DefaultComboxModel时,它是否会动态更新?仅当您每次更改地图时执行最后一行时。每当您的地图发生更改时,您都可以直接调用它进行更改。