我正在尝试模仿 HTML Select 标记。我想将文本显示为选项,但选择后,我会使用其值。
例如,我会有一个国家名称列表。但是,当用户选择日本时,我想获取该国家/地区的区域设置代码。所以用户看到他们选择了日本,但我的代码会得到“ja_JP”之类的东西。
我试图避免将国家名称和区域设置代码存储在 HashMap 或其他东西中。
创建一个包含显示名称和国家代码的 Country 对象。您可以快速而肮脏地覆盖 toString 以显示显示名称,然后在用户选择某些内容时在需要时检索代码。
public class Country
{
String display;
String code;
@Override
public String toString()
{
return display;
}
public String getCode()
{
return code;
}
}
因为我很懒,所以省略了构造函数。如果您对覆盖 toString 不满意,您还可以创建自己的渲染器来处理 Country 对象,并通过新的 getter 使用显示。
编辑:我需要更快地打字。
我通常创建一个自定义对象来保存“值”并覆盖 toString() 以返回 JComboBox 应该显示的内容。或者,您可以编写自己的单元格渲染器。