如何在对话框中使用Enum使用JComboBox

时间:2010-04-26 16:14:25

标签: java enums jcombobox dialog

我定义了枚举:

  
    

enum itemType {First,Second,Third};

         

公共类项目

         

{

         
      
        

private itemType enmItemType;

                 

...

      
    
         

}

  

如何在使用JComboBox的对话框中使用它? 意思是,在对话框内,用户将有组合框(第一,第二,第三)。 另外,对每个分子使用某种ID更好吗? (整数)

感谢。

3 个答案:

答案 0 :(得分:21)

这是我使用过的方法:

enum ItemType {
    First("First choice"), Second("Second choice"), Third("Final choice");
    private final String display;
    private ItemType(String s) {
        display = s;
    }
    @Override
    public String toString() {
        return display;
    }
}

JComboBox jComboBox = new JComboBox();
jComboBox.setModel(new DefaultComboBoxModel(ItemType.values()));

覆盖toString方法允许您提供向用户显示有意义选择的显示文本。

注意:我还将itemType更改为ItemType,因为类型名称应始终具有前导上限。

答案 1 :(得分:8)

JComboBox combo = new JComboBox(itemType.values());

答案 2 :(得分:3)

假设您知道如何使用JComboBox对对话框进行编码,您可以执行以下操作将Enum值加载到组合框:

enum ItemType {First, Second, Third};    
JComboBox myEnumCombo = new JComboBox();
myEnumCombo.setModel(new DefaultComboBoxModel(ItemType.values());

然后以你能做的枚举来获得价值

(ItemType)myEnumCombo.getSelectedItem();

除非您的应用程序逻辑需要分配一些有意义的ID,否则无需为枚举分配ID。枚举本身已经有一个独特的ID系统。