Java 如何从JComboBox读取唯一id?
我有一个私人空间来处理新来的人。这些人是按他们的生日来搜查的。在我找到的人的生日,我将其姓名和号码添加到Java 如何从JComboBox读取唯一id?,java,swing,jcombobox,Java,Swing,Jcombobox,我有一个私人空间来处理新来的人。这些人是按他们的生日来搜查的。在我找到的人的生日,我将其姓名和号码添加到JComboBox 但是,另一个按钮应该读取所选人员的ID。我该怎么做 String birthday= tfBirthday.getText(); personQuery query = Application.getPersonQuery(); List<Person> persons= query.getPerson(birthday); for(int i = 0; i
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());
}
String birthday=tfBirthday.getText();
personQuery=Application.getPersonQuery();
List persons=query.getPerson(生日);
对于(int i=0;i
如何从组合框中添加的项目中读取person.getPersonID
THanx对于帮助您不应该(也不能,除非您解析字符串)从
JComboBox
读取ID,而应该直接从人员列表中读取ID,就像您在发布的代码中所做的那样。您可以覆盖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对象,可以调用person.getPersonID()来获取ID。为单个用例更改对象的toString方法是不明智的。您应该为组合框提供ListCellRenderer,以自定义此用例的视图,并且应该在选择时回答检查所选对象的Person属性changes@MadProgrammer你完全正确。我添加此评论是为了鼓励将来引用此评论的任何人提供ListCellRenderer。
Person selectedPerson = (Person)tfcSelectName.getSelectedItem();