Vaadin 6组合框与枚举相关联

时间:2016-01-22 21:22:56

标签: gwt vaadin

我想知道是否有办法为选择项分配枚举的所有值,而不是手动添加其中的每一个。目前我这样做:

ComboBox myBox = new ComboBox();
for(SelectValuesEnum enum: SelectValuesEnum.values()){
 myBox.addItem(enum)
}

2 个答案:

答案 0 :(得分:0)

通过这个,你得到一个包含所有枚举值的列表

new ArrayList<MyEnum>(Arrays.asList(SelectValuesEnum.values()));

这可以将它转换为Collection并在ComboBox构造函数中使用它,该构造函数接受Collection作为参数。

答案 1 :(得分:0)

您可以使用简单的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());
    }
}