2009-03-03 82 views
4

我正在尝试模仿HTML Select标签。我想显示文本作为选项,但选中时,我会使用它的值。有没有办法让JComboBox像HTML选择一样行事?

例如,我会列出国家名称。但是,当用户选择日本时,我想获取该国家的区域码。所以用户看到他们选择了日本,但是我的代码会得到“ja_JP”或其他东西。

我试图避免将国家名称和区域代码存储在HashMap或其他东西。

回答

8

创建一个包含显示名称和国家代码的国家对象。你可以做到快速和肮脏,并重写toString来显示显示名称,然后只需在用户选择某些内容时检索代码。

public class Country 
{ 
    String display; 
    String code; 

    @Override 
    public String toString() 
    { 
     return display; 
    } 

    public String getCode() 
    { 
     return code; 
    } 
} 

遗漏了构造函数,因为我很懒。如果您对重写toString不满意,您还可以创建自己的渲染器来处理Country对象,并通过新的getter来使用显示器。

1

编辑:我需要输入更快。

我通常会创建一个自定义对象来保存“值”并重写toString()来返回JComboBox应显示的内容。或者,您可以编写自己的单元格渲染器。

+1

没有人输我! :) – willcodejavaforfood 2009-04-09 16:20:23

相关问题