错误尝试获取单元格数据值JavaFX TableView

时间:2016-11-18 09:04:17

标签: java javafx tableview getvalue

我正在尝试获取当前单元格的值,我将数组列表映射到单个列。

这是我的代码:

TableColumn<ObservableList<String>, String> nameColumn = new TableColumn<>("Name");
        nameColumn.setCellValueFactory(cellData -> {
            Integer rowIndex = cellData.getValue();
            return new ReadOnlyStringWrapper(rangeArrayList.get(rowIndex));
        });

        tableView.getColumns().add(nameColumn);

这是我的错误:

enter image description here

我如何才能解决此错误?

1 个答案:

答案 0 :(得分:1)

除非您的项目包含行信息,否则您无法使用cellValueFactory执行此操作,因为除了TableColumn.CellDataFeatures中包含的值之外,没有关于该行的信息。

如果您想使用行号来检索数据,可以使用cellFactory执行此操作,因为TableCell可以使用索引:

public static <T> Callback<TableColumn<T, Void>, TableCell<T, Void>> cellFactory(final List<?> list) {
    return c -> new TableCell<T, Void>() {

        @Override
        public void updateIndex(int i) {
            super.updateIndex(i);
            setText(isEmpty() ? "" : Objects.toString(list.get(i), ""));
        }

    };
}
TableColumn<ObservableList<String>, Void> nameColumn = new TableColumn<>("Name");
nameColumn.setCellFactory(cellFactory(rangeArrayList));
相关问题