在Java中为项目JComboBox设置值和标签

在Java中为项目JComboBox设置值和标签,java,label,jcombobox,Java,Label,Jcombobox,我有一个JComboBox,其中的项是查询的结果。组合框显示从查询中获取的所有类别名称,对吗?好的,它起作用了。现在我需要给每一项赋予一个值,即产品的ID 到目前为止,我得到的是: final JComboBox proveedorCombo = new JComboBox(); contentPanel.add(proveedorCombo); ProveedorDAO dao = new ProveedorDAO(); List<Proveedor

我有一个JComboBox,其中的项是查询的结果。组合框显示从查询中获取的所有类别名称,对吗?好的,它起作用了。现在我需要给每一项赋予一个值,即产品的ID

到目前为止,我得到的是:

    final JComboBox proveedorCombo = new JComboBox();

    contentPanel.add(proveedorCombo);

    ProveedorDAO dao = new ProveedorDAO();

    List<Proveedor> proveedor = dao.getAll();

    Object[][] elementos = new Object[proveedor.size()][2];

    for (int i = 0; i < proveedor.size(); i++) {
        Proveedor p = proveedor.get(i);
        elementos[i][0] = p.getId();
        elementos[i][1] = p.getNombre();
        proveedorCombo.addItem(elementos[i][1]);
    }
final JComboBox proveedorCombo=new JComboBox();
contentPanel.add(proveedorCombo);
ProveedorDAO=new ProveedorDAO();
List proveder=dao.getAll();
Object[][]elementos=新对象[proveedor.size()][2];
对于(int i=0;i

正如您在代码中看到的,每个项目的“标签”都是它的名称。现在,我如何设置每个项目的ID以便在之后进行操作?

您需要使用值的ID作为JComboBox中的值,并使用自定义ListCellRenderer查找ID值的名称

您可以通过按名称的ID构建名称映射,并让渲染器返回值的名称来实现这一点