我使用Vaadin 6并需要一些帮助来设置用户从下拉框中选择一个选项后选择的值。在Select框中创建和添加一些值很简单:
Select sel = new Select();
sel.addItem("Value 1");
sel.addItem("Value 2");
sel.addItem("Value 3");
获取价值同样简单:
String selValue = (String) sel.getValue();
但问题在于我需要填充选择的HashMap:
HashMap<String, String> users = new HashMap<String, Sting>();
users.put("1", "John");
users.put("2", "Bob");
users.put("3", "Tom");
因此,在选择框中我想显示实际的用户名,但是当它被选中时,我喜欢 id 通过。这可能吗?或者它是你所看到的 - 你选择的是什么?
答案 0 :(得分:4)
你需要这样做:
HashMap<String, String> users = new HashMap<String, String>();
users.put("1", "John");
users.put("2", "Bob");
users.put("3", "Tom");
Select select = new Select();
for(Iterator<String> i = users.keySet().iterator(); i.hasNext();) {
String key = i.next();
select.addItem(key);
select.setItemCaption(key, users.get(key));
}
String selValue = (String) select.getValue();
这样就可以添加与您相同的项目,但随后会设置用户在屏幕上看到的内容。然后,当您获得该值时,它将返回id,而不是显示的值。