我想用两个不同的数据库表列中的数据填充TableView列,其中一个用户的名字是另一个,第二个是另一个,另一个是最后一个。
我知道的唯一方法是一次只能从一个数据库列到一个TableView列:
name.setCellValueFactory(new PropertyValueFactory<RevEntity, String>("firstName"));
来自pojo,如:
public class UserEntity extends RevEntity {
private String firstName;
private String secondName;
private String otherNames;
我想要的是类似于String concat的东西。
我知道这不起作用。只是展示了我的想法:
name.setCellValueFactory(new PropertyValueFactory<RevEntity, String>("firstName" + "secondName" + "otherNames"));
请帮忙解决这个问题。谢谢。
答案 0 :(得分:1)
您可以在Callback
中创建setCellValueFactory()
,覆盖其call()
并从该方法返回ObservableValue<String>
。此ObservableValue将是您FirstName
和SecondName
的串联等等。
我只是将其视为 firstName 和 lastName
name.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<Person, String>,
ObservableValue<String>>() {
@Override
public ObservableValue<String> call(
TableColumn.CellDataFeatures<Person, String> p) {
return new SimpleStringProperty(p.getValue().getFirstName()
+ " " + p.getValue().getLastName());
}
});