用于定义具有许多列的tableview数据的更简单方法?

时间:2019-04-16 01:38:21

标签: java javafx

我会尽力解释这一点。过去一周,我才刚刚开始第一次研究JavaFX。我仍在掌握如何使用PropertyValueFactory和SimpleStringProperty,但可以使它工作。现在,如果我有20列即20种get / set方法,则需要编写。这不是一个大问题,但很乏味,对我来说似乎遥不可及。

有没有一种方法可以让所有列都调用相同的方法进行数据检索,但可以传入变量?像字符串还是枚举?因此,TableView的ObservableList中的对象将具有如下方法:

class TableObject{
    public String getTableElement(String key){ 
        return this.data.get(key);
    }
}

希望这是有道理的,我不确定如何表达这个问题。

1 个答案:

答案 0 :(得分:2)

实施自己的Callback并替换PropertyValueFactory

private static TableColumn<TableObject, String> createColumn(String name, final String key) {
    TableColumn<TableObject, String> column = new TableColumn<>(name);
    column.setCellValueFactory(cd -> new SimpleStringProperty(cd.getValue().getTableElement(key)));
    return column;
}