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

Error Trying to get cell data value JavaFX TableView

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

这是我的代码:

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

这是我的错误:

我该如何解决这个错误?

除非您的项目包含行信息,否则您不能使用 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));