Gwt 与枚举链接的Vaadin 6组合框

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

我想知道是否有一种方法可以将枚举的所有值分配给select项,而不是手动添加其中的每一个值。目前我这样做:

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似乎没有便捷的快捷方式。如果您经常这样做,请编写您自己的容器或组合框来帮助您实现这一点。