如何从JComboBox读取唯一的ID?

时间:2013-06-08 18:30:03

标签: java swing jcombobox

我有这个私人空白处理传入的人。这些人被他们的生日搜查。我找到的人的生日,我将其姓名和号码添加到JComboBox

但是,另一个按钮应该读取所​​选人员的ID。我怎么能这样做?

String birthday= tfBirthday.getText();
personQuery query = Application.getPersonQuery();
List<Person> persons= query.getPerson(birthday);

for(int i = 0; i < persons.size(); i++){
                Person person = persons.get(i);
                tfcSelectName.addItem(person.getPersonID() + " " + person.getPersonName() + " "+ person.getPersonLastName());
}

如何从组合框中添加的项目中以某种方式阅读person.getPersonID?

THANx的帮助

2 个答案:

答案 0 :(得分:1)

您不应该(除非您解析字符串,否则不能读取JComboBox中的ID,而应直接从人员列表中读取它,就像您在发布的代码中所做的那样。

答案 1 :(得分:1)

您可以覆盖person类中的toString()方法,然后将Person对象直接添加到组合框中。然后,当您检索所选项目时,将对象强制转换为Person并使用该方法获取id。

在你的班级中:

public String toString() {
   return (person.getPersonID() + " " + person.getPersonName() + " "+ person.getPersonLastName()
}

然后您在问题中添加的代码可以更改为:

String birthday= tfBirthday.getText();
personQuery query = Application.getPersonQuery();
List<Person> persons= query.getPerson(birthday);

for(int i = 0; i < persons.size(); i++){
    tfcSelectName.addItem(persons.get(i));
}

稍后在您提到的按钮的动作执行代码中,您可以执行以下操作:

Person selectedPerson = (Person)tfcSelectName.getSelectedItem();

你有person对象,你可以调用person.getPersonID()来获取ID。