如何将JComboBox项映射到其对应的ID?

Yat*_*oel 7 java swing jcombobox

我在数据库中有一个包含两个字段的表

  • ID
  • 名称

我已经使用存储在数据库中的所有名称填充了一个JComboBox"combo1".现在我希望每当用户选择"combo1"的项目时,我都能识别所选项目的"id".

但问题是名称可能在表格中重复.因此,假设一个表有3个重复的名称,那么

Q1.如何在"combo1"中显示项目,以便用户可以区分这些常用名称?

Q2.用户单击某个项目后,如果所选项目有重复项,如何识别用户点击了哪个项目?

Pie*_*rre 11

使用类来存储您的数据对.JComboBox将使用其toString()方法作为标签.

public class Item
{
    int id;
    String name;

    public String toString()
    {
        return this.name+"("+id+")";
    }
}
(...)
Item array[]=new  Item[]{ ... };//fill the array with your items
JComboBox c=new  JComboBox(array);
(...)
//use the combo
(...)
Item selected=(Item)c.getSelectedItem();
System.err.println("id is "+selected.id);
Run Code Online (Sandbox Code Playgroud)