现在我做一个简单的管理系统,里面有很多常量值,比如说政治面貌,就有:团员,预备党员,党员。性别:男,女。等等我现在把常量都做成了enum,然后把enum做为了实体类的属性了。在前台,我用的是下拉框来选择的,但是现在问题来了。下拉框选择的值是string类型的,而我实体类的对应属性是枚举类型的,这样就不好直接赋值了。需要进行一堆判断。我就想,这样是不是太麻烦了,能不能有点其他的方法,还是我本事的设计思路就有问题,来这里请教大家,希望大家能帮一下。先谢谢大家了。

解决方案 »

  1.   

    使用DefaultComboBoxModel来控制Combo的内容
      

  2.   

    用Map吧,Map<String,Enum>或者
    valueOf
    public static <T extends Enum<T>> T valueOf(Class<T> enumType,
                                                String name)返回带指定名称的指定枚举类型的枚举常量。名称必须与在此类型中声明枚举常量所用的标识符完全匹配。(不允许使用额外的空白字符。) 参数:
    enumType - 要从中返回常量的枚举类型的 Class 对象
    name - 要返回的常量名称 
    返回:
    带指定名称的指定枚举类型的枚举常量 
    抛出: 
    IllegalArgumentException - 如果指定枚举类型不包含指定名称的常量,或者指定类对象不表示枚举类型 
    NullPointerException - 如果 enumType 或 name 为空
    从以下版本开始: 
    1.5 
      

  3.   

    public static enum SEX
    {
    MALE(0,"男"),
    FEMALE(0,"女");private int value;
    private String name;public SEX(int value,String name)
    {
    this.value = value;
    this.name= name;public int valueOf()
    {
    return this.value;
    }
    public String toString()
    {
    return this.name;
    }
    }JComboBox里放SEX.values();