我有一个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;
}
答案 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()));