Добавить данные из массива в разные столбцы javafx TableView - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть класс InfosPatient, который содержит информацию о пациенте: Его разные имена (имя при рождении, официальное имя ...), другой адрес (основной, рабочий ...), разные номера телефонов и другая информация (пол, дата рождения)

Вот класс:

public class InfosPatient {
private Identity[] identities;
private String birthDate="";
private String sexe="";
private Adresse[] adresse;
private NumeroTelephone[] telephones;
private String numeroCafat="",numeroMed="";}

Вот класс идентичности:

public class Identity {
private String prenom,nom;
private TypeNom typeNom;

TypeNom - это перечисление с двумя различными значениями: Usuel (официальное имя) и Naissance (имя при рождении).

Классы адреса и телефона аналогичны (с перечислениями).

Итак, мой вопрос:

Как добавить в строку TableView разные идентификаторы в разных столбцах?

Я хочу иметь столбец с именем рождения, а другой - с официальным именем. Как это: Одна колонка с официальным именем и фамилией, вторая с именем и фамилией при рождении.

Спасибо за вашу помощь.

PS: для доступа к определенной личности я использую это:

public Identity getIdentity(TypeNom typeNom) {
    for (Identity identity:this.identities) {
        if (identity.getTypeNom() == typeNom){
            return identity;
        }
    }
    return null;
}

1 Ответ

0 голосов
/ 08 ноября 2018

Хорошо, я нахожу решение: Мне просто нужно было использовать ReadOnlyStringWrapper:

TableColumn<InfosPatient,Identity> identiteUsuelle = new TableColumn<>("Nom usuel");
TableColumn<InfosPatient,String> prenomUsuel = new TableColumn<>("Prenom");
prenomUsuel.setCellValueFactory(cellData -> new ReadOnlyStringWrapper(cellData.getValue().getIdentity(TypeNom.USUEL).getPrenom()));
TableColumn<InfosPatient,String> nomUsuel = new TableColumn<>("Nom");
nomUsuel.setCellValueFactory(cellData -> new ReadOnlyStringWrapper(cellData.getValue().getIdentity(TypeNom.USUEL).getNom()));
...