TableColumn的默认CellValueFactory是什么?

时间:2019-03-24 20:47:15

标签: java javafx tableview factory tablecolumn

我想知道什么是deault TableColumn CellValueFactory。我知道可以通过使用TableColumn.DEFAULT_CELL_FACTORY获取默认的CellFactory,有没有办法以相同的方式访问CellValueFactory?

我问是因为我有一个为TableColumn定义自定义CellValueFactory的函数,这使我可以在用户按下按钮时用值填充列。但是随后可以清除同一列,并可以通过键入值并按Enter来添加值。

我相信只有在CellValueFactory是默认值时,才可以通过键入将值添加到列中。

我尝试将其连接到我的模型,但这不是我想要的方式。

我的自定义CellValueFactory如下:

tableColumn.setCellValueFactory(new Callback<CellDataFeatures<List<String>, String>, ObservableValue<String>>() {

@Override
public ObservableValue<String> call(CellDataFeatures<List<String>, String> data) {
        return new ReadOnlyStringWrapper(data.getValue().get(0));
    }
});

这可以按预期工作,但是当我使用此CellValueFactory填充TableColumn,然后按清除表的按钮,添加许多行(允许用户键入值)时,将创建行并将其添加到表,但不显示。

但是,如果用户首先按下按钮以键入值(而不是首先自动填充行),则可以正确显示行。当按下此按钮时,我已经定义了一个CellFactory,但是没有CellValueFactory。

我希望如果可以在按下按钮时重置CellValueFactory,那么该表将按预期工作。

0 个答案:

没有答案