JavaFX - TableView - 使用来自多个属性的文本填充单元格

时间:2016-08-12 13:18:33

标签: java javafx

我认为这不是一个很难的问题,但我无法理解它。基本上它可以归结为:

我有一个TableView,其中填充了模型类Foo:

中的对象
class Foo {
    private StringProperty textColA;
    private StringProperty textColB1;
    private StringProperty textColB2;

    // Getters, setters and properties left away
}

第一列只是从textColA StringProperty获取数据。另一方面,B列需要textColB1textColB2的数据。是否有可能创建包含这两个属性的某种属性?

1 个答案:

答案 0 :(得分:3)

不确定。例如,要生成两个字符串之间的空格的连接,请执行

TableColumn<Foo, String> someColumn = new TableColumn<>("Column");
someColumn.setCellValueFactory(cellData -> Bindings.createStringBinding(() ->
    cellData.getValue().getTextColB1() + " " + cellData.getValue().getTextColB2(),
    cellData.textColB1Property(), cellData.textColB2Property()));

(更简单地说,在这种特殊情况下,你可以做到

someColumn.setCellValueFactory(cellData ->
    cellData.getValue().textColB1Property().concat(" ")
        .concat(cellData.getValue().textColB2Property());

但更通用的形式适用于两个属性的任意函数。)