尝试获取单元格数据值 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));
我正在尝试获取当前单元格的值,我正在将数组列表映射到单个列。
这是我的代码:
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));