我会尽力解释这一点。过去一周,我才刚刚开始第一次研究JavaFX。我仍在掌握如何使用PropertyValueFactory和SimpleStringProperty,但可以使它工作。现在,如果我有20列即20种get / set方法,则需要编写。这不是一个大问题,但很乏味,对我来说似乎遥不可及。
有没有一种方法可以让所有列都调用相同的方法进行数据检索,但可以传入变量?像字符串还是枚举?因此,TableView的ObservableList中的对象将具有如下方法:
class TableObject{
public String getTableElement(String key){
return this.data.get(key);
}
}
希望这是有道理的,我不确定如何表达这个问题。
答案 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;
}