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

行番号を使用してデータを取得する場合は、 を使用してこれを行うことができます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 に答える