Gwt 与枚举链接的Vaadin 6组合框
我想知道是否有一种方法可以将枚举的所有值分配给select项,而不是手动添加其中的每一个值。目前我这样做:Gwt 与枚举链接的Vaadin 6组合框,gwt,vaadin,Gwt,Vaadin,我想知道是否有一种方法可以将枚举的所有值分配给select项,而不是手动添加其中的每一个值。目前我这样做: ComboBox myBox = new ComboBox(); for(SelectValuesEnum enum: SelectValuesEnum.values()){ myBox.addItem(enum) } 这样,您将得到一个包含所有枚举值的列表 new ArrayList<MyEnum>(Arrays.asList(SelectValuesEnum.value
ComboBox myBox = new ComboBox();
for(SelectValuesEnum enum: SelectValuesEnum.values()){
myBox.addItem(enum)
}
这样,您将得到一个包含所有枚举值的列表
new ArrayList<MyEnum>(Arrays.asList(SelectValuesEnum.values()));
newarraylist(Arrays.asList(SelectValuesEnum.values());
您可以将其转换为一个集合,并在接受集合作为参数的ComboBox构造函数中使用它。您可以使用simple BeanContainer:
BeanContainer<Integer, YouEnum> cbContainer = new BeanContainer<Integer, YouEnum>(YouEnum.class);
cbContainer.setBeanIdProperty("id");
cbContainer.addAll(EnumSet.allOf(YouEnum.class));
ComboBox cb = new ComboBox(null, cbContainer);
cb.setItemCaptionPropertyId("fieldDescription");
cb.setImmediate(true);
// return cb;
public enum YouEnum {
VAL_1("value 1"),
VAL_2("value 2");
private final String fieldDescription;
private YouEnum(String value) {
fieldDescription = value;
}
public String getFieldDescription() {
return fieldDescription;
}
public String getId(){
return String.valueOf(ordinal());
}
}
BeanContainer cbContainer=新的BeanContainer(YouEnum.class);
cbContainer.SetbeAndProperty(“id”);
cbContainer.addAll(EnumSet.allOf(YouEnum.class));
ComboBox cb=新ComboBox(空,cbContainer);
cb.setItemCaptionPropertyId(“字段描述”);
cb.setImmediate(真);
//返回cb;
公共enum YouEnum{
价值1(“价值1”),
价值2(“价值2”);
私有最终字符串字段描述;
私有YouEnum(字符串值){
字段描述=值;
}
公共字符串getFieldDescription(){
返回字段描述;
}
公共字符串getId(){
返回字符串.valueOf(ordinal());
}
}
自7.2起,有附加项
;IndexedContainer似乎没有便捷的快捷方式。如果您经常这样做,请编写您自己的容器或组合框来帮助您实现这一点。