Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从JComboBox读取唯一id?_Java_Swing_Jcombobox - Fatal编程技术网

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();