将数组中的数据添加到TableView javafx的不同列

时间:2018-11-08 02:18:22

标签: javafx tableview

我有一个InfosPatient类,其中包含患者的信息: 他的名字(出生名字,正式名字...),地址(主要名字,工作地点...),电话号码和其他信息(性别,出生日期)不同

这是课程:

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

这是Identity类:

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 :(得分:1)

好的,所以我找到了一个解决方案: 我只需要使用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()));