我想知道是否有办法为选择项分配枚举的所有值,而不是手动添加其中的每一个。目前我这样做:
ComboBox myBox = new ComboBox();
for(SelectValuesEnum enum: SelectValuesEnum.values()){
myBox.addItem(enum)
}
答案 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());
}
}