选择项目后,JComboBox自定义显示

时间:2013-01-21 22:06:23

标签: java swing jcombobox

这可能是重复的 - 我找不到它 - 我基本上只是想通过提供我自己的ListCellRenderer来自定义JComboBox显示:

targetCombo = new JComboBox();
targetCombo .setRenderer(new BasicComboBoxRenderer(){
    public Component getListCellRendererComponent(JList list, Object value, int index,              boolean isSelected, boolean cellHasFocus){
        super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
        if (value != null){
            MyObj myObj = (myObj)value;
            setText(myObj.getName());
        }
        return this;
    }
});

当我展开JComboBox列表时,组件正确显示名称。但是,在项目选择上,显示将恢复为myObj的toString()值。

我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

  

...显示恢复为myObj的toString()值。

除非您需要针对特定​​内容的toString(),否则将其覆盖以返回'name',

那么你不需要渲染器 - comboBox将显示toString()值

相关问题