0
我想知道是否有指定的选择项枚举的所有值的方式,而不是手动添加them.Currently的每一个我这样做:Vaadin 6组合框枚举链接
ComboBox myBox = new ComboBox();
for(SelectValuesEnum enum: SelectValuesEnum.values()){
myBox.addItem(enum)
}
我想知道是否有指定的选择项枚举的所有值的方式,而不是手动添加them.Currently的每一个我这样做:Vaadin 6组合框枚举链接
ComboBox myBox = new ComboBox();
for(SelectValuesEnum enum: SelectValuesEnum.values()){
myBox.addItem(enum)
}
有了这个,你得到一个列表的所有枚举值
new ArrayList<MyEnum>(Arrays.asList(SelectValuesEnum.values()));
而这,你可以把它转换成一个集合,在接受集合作为参数的组合框构造函数中使用它。
您可以使用简单的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());
}
}
有'addItems'因为7.2;而IndexedContainer似乎没有方便的捷径。如果你这样做,不要写自己的容器或自己的组合框来帮助解决这个问题。 – cfrick