如何使用来自两个不同数据库列的数据填充TableView列

时间:2014-09-17 06:14:49

标签: javafx tableview

我想用两个不同的数据库表列中的数据填充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"));

请帮忙解决这个问题。谢谢。

1 个答案:

答案 0 :(得分:1)

您可以在Callback中创建setCellValueFactory(),覆盖其call()并从该方法返回ObservableValue<String>。此ObservableValue将是您FirstNameSecondName的串联等等。

我只是将其视为 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());
        }
});