Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将项目从映射添加到JComboBox_Java_Swing_Maps_Jcombobox - Fatal编程技术网

Java 将项目从映射添加到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

很抱歉,我没有任何代码,但需要一些建议,有没有一种方法可以将项目从映射添加到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 = 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时,它是否会动态更新?仅当您每次更改地图时执行最后一行时。每当您的地图发生更改时,您都可以直接调用它进行更改。