gpt4 book ai didi

java - 用 HashMap 填充 ComboBox?

转载 作者:行者123 更新时间:2023-11-30 06:21:35 24 4
gpt4 key购买 nike

我正在尝试使用信息 HashMap 填充 vaadin7 的组合框。我创建了一个返回 HashMap 的类,当我使用一个 for each 来填充这个组合框时返回一个 HashMap 但确实只显示数字而不是 hashmap 的键和值。

我正在尝试这个。

/** states of brasil class */
public class EstadosBrasil {
private static final HashMap<String, String> uf = new HashMap();

/** return all states of brasil */
public static HashMap<String, String> getEstados(){
uf.put("AC", "AC");
uf.put("AL", "AL");
uf.put("AM", "AM");
uf.put("AP", "AP");
uf.put("BA", "BA");
uf.put("CE", "CE");
uf.put("DF", "DF");
uf.put("ES", "ES");
uf.put("FN", "FN");
uf.put("GO", "GO");
uf.put("MA", "MA");
uf.put("MG", "MG");
uf.put("MS", "MS");
uf.put("MT", "MT");
uf.put("PA", "PA");
uf.put("PB", "PB");
uf.put("PE", "PE");
uf.put("PI", "PI");
uf.put("PR", "PR");
uf.put("RJ", "RJ");
uf.put("RN", "RN");
uf.put("RO", "RO");
uf.put("RR", "RR");
uf.put("RS", "RS");
uf.put("SC", "SC");
uf.put("SE", "SE");
uf.put("SP", "SP");
uf.put("TO", "TO");

return uf;
}

// my combobox 
private ComboBox comboEstado;
comboEstado = new ComboBox("States");
comboEstado.setWidth("100px");
HashMap<String, String> estados = EstadosBrasil.getEstados();
for(Entry<String, String> e : estados.entrySet()){
Object obj = comboEstado.addItem();
comboEstado.setItemCaption(e.getKey(), e.getValue());
comboEstado.setValue(obj);
}
mainLayout.addComponent(comboEstado);

有什么想法吗?

谢谢

最佳答案

改变-

Object obj = comboEstado.addItem();
comboEstado.setItemCaption(e.getKey(), e.getValue());
comboEstado.setValue(obj);

到-

comboEstado.addItem(e.getKey());
comboEstado.setItemCaption(e.getKey(), e.getValue());

如果你想让键值对都出现,可以这样做-

comboEstado.setItemCaption(e.getKey(), e.getKey() + " : " +  e.getValue());

顺便说一下,我希望你能改变这些值(value)观。如果键和值都相同,您可以只使用 Set

关于java - 用 HashMap 填充 ComboBox?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20350206/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com