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