我有一个Water
对象,其中包含对Flat
对象的引用,该对象具有名称和姓氏的值(仅String
,而不是StringProperties
)。我想创建一个自定义TableCell
,根据条件将写出全名(姓名+姓氏)或短名称(姓氏+名字的第一个字母)。这是我的对象的架构:
TableView
由来自Water
object:
@FXML
private TableView<Water> waterTable;
@FXML
private TableColumn<Water, String> ownerColumn;
我尝试过自定义TableCell,但我不知道如何从Water对象访问数据。
ownerColumn.setCellFactory(new Callback<TableColumn<Water,String>, TableCell<Water,String>>() {
@Override
public TableCell<Water, String> call(TableColumn<Water, String> param) {
return new TableCell<Water, String>(){
@Override
protected void updateItem(String item, boolean empty){
setText("Need to set a text to Water.getFlat().getName()+' '+Water.getFlat().getLastName()");
}
};
}
});
如何更改setText
行,以便从Water
对象获取将为此行分配的信息?
更新后的代码:
@FXML
private TableView<Water> waterTable;
@FXML
private TableColumn<Water, Flat> ownerColumn;
// and setCellFactory
ownerColumn.setCellFactory(new Callback<TableColumn<Water,Flat>, TableCell<Water,Flat>>() {
@Override
public TableCell<Water, Flat> call(TableColumn<Water, Flat> param) {
return new TableCell<Water, Flat>(){
@Override
protected void updateItem(Flat item, boolean empty){
setText(item.getOwnerName()+" "+item.getOwnerLastName());
}
};
}
});