我想创建一个具有以下外观行为的jcombobox:
1)在下拉列表中,每一行应该是代码编号和项目名称. 2)当用户选择其中一行时,在组合框的文本字段组件中,只显示代码编号而不是项目名称.
我怎样才能做到这一点?
提前致谢.
最佳答案 使用两个步骤来做到这一点并不困难:
>您的JComboBox项必须是Object,例如:
public class Item {
private String number;
private String name;
// Constructor + Setters and Getters
}
> ListCellRenderer,它自定义如何在弹出列表或JComboBox的文本字段中呈现值:
JComboBox<Item> jc = new JComboBox<Item>();
jc.setRenderer(new ListCellRenderer<Item>() {
@Override
public Component getListCellRendererComponent(
JList<? extends Item> list, Item value, int index, boolean isSelected, boolean cellHasFocus) {
if(isSelected && list.getSelectedIndex () != index)
return new JLabel(value.getNumber());
return new JLabel(value.getNumber() +" "+value.getName());
}
});
祝好运.