这可能是重复的 - 我找不到它 - 我基本上只是想通过提供我自己的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()值。
我错过了什么吗?
答案 0 :(得分:0)
...显示恢复为myObj的toString()值。
除非您需要针对特定内容的toString(),否则将其覆盖以返回'name',
那么你不需要渲染器 - comboBox将显示toString()值