Java 定义具有多个列的tableview数据的更简单方法?

Java 定义具有多个列的tableview数据的更简单方法?,java,javafx,Java,Javafx,我会尽力解释的。上个星期我才第一次开始研究JavaFX。我仍在掌握如何使用PropertyValueFactory和SimpleStringProperty,但我让它发挥作用。现在,如果我有20列,那就是我需要编写的20个get/set方法。这不是一个大问题,但对我来说很乏味,而且似乎很冗长 有没有办法让所有列调用相同的方法进行数据检索,但传入一个变量?像字符串还是枚举?因此,我的TableView的ObservableList中的对象将具有如下方法: class TableObject{

我会尽力解释的。上个星期我才第一次开始研究JavaFX。我仍在掌握如何使用PropertyValueFactory和SimpleStringProperty,但我让它发挥作用。现在,如果我有20列,那就是我需要编写的20个get/set方法。这不是一个大问题,但对我来说很乏味,而且似乎很冗长

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

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

希望这是有意义的,我不太确定这个问题的措辞。

实现您自己的
回调
并替换
属性值工厂

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;
}
private static TableColumn createColumn(字符串名称,最终字符串键){
TableColumn column=新的TableColumn(名称);
column.setCellValueFactory(cd->new SimpleStringProperty(cd.getValue().getTableElement(键));
返回列;
}

实现您自己的
回调
并替换
属性值工厂

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;
}
private static TableColumn createColumn(字符串名称,最终字符串键){
TableColumn column=新的TableColumn(名称);
column.setCellValueFactory(cd->new SimpleStringProperty(cd.getValue().getTableElement(键));
返回列;
}

谢谢,这正是我需要的。JavaFX与我预期的大不相同,但似乎更强大。谢谢,这正是我所需要的。JavaFX与我预期的大不相同,但似乎更强大