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

标签 java swing jcombobox

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

  • 编号
  • 姓名

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

但问题是名称在表中可以重复。所以假设如果一个表有 3 个重复的名称,那么

Q1。如何显示“combo1”中的项目,以便用户可以区分这些常用名称?

Q2。用户点击一个item后,如果选中的item有重复项,如何识别用户点击的是哪个item?

最佳答案

使用一个类来存储你的一对数据。 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);

关于java - 如何将 JComboBox 项目映射到其对应的 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2096062/

相关文章:

java - 如何使用Spring Boot在maven pom中添加dom4j依赖

java - 在关闭同一连接上的不同语句之前在连接上执行语句的行为是什么?

java - Java中获取当前显示尺寸

java - 如何使JTable连续具有多种编辑器类型?

java - 使用来自 sql 的数据将数据添加到组合框 - java

java - 通过 Websphere over SSL 连接到 Oracle 的 RSA premaster secret 错误

java - 更新半连续变量的下限不再使其保持半连续

java客户端服务器端socket编程实现问题

java - 从 addMouseListener 恢复 getSelectedValue

java - 错误 : unchecked call to DefaultComboBoxModel(E[])