0

私は、入ってくる人を処理するこのプライベートな空間を持っています。これらの人は誕生日で検索されます。見つけた人の誕生日、名前と番号を に追加し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 を読み取ることができますか?

助けてくれたサンクス

4

2 に答える 2

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 を取得できます。

于 2013-06-08T19:02:44.620 に答える
1

からIDを読み取るべきではありません(文字列を解析しない限りできません)JComboBox。代わりに、投稿したコードで行ったように、人のリストから直接読み取る必要があります。

于 2013-06-08T18:36:11.330 に答える