0

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

这是我的代码:

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);

这是我的错误:

在此处输入图像描述

我将如何解决此错误?

4

1 回答 1

1

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

如果要使用行号来检索数据,可以使用 a 来执行此操作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));
于 2016-11-18T09:33:02.423 回答