JavaFX 将 ObservableList<String> 添加到单列 TableView

JavaFX adding ObservableList<String> to single column TableView

我想将 ObservableList batchNumber 中的数据添加到只包含一列的表视图,但我卡住了,因为我找到的所有教程都是关于添加对象类型,而不是字符串类型。

这是我用来生成格式为 AAA0000 的随机批号的函数

public String generateBatch(){
    Random rand = new Random();
    String[] alphabet = "Q W E R T Y U I O P A S D F G H J K L Z X C V B N M".split(" ");
    String batch = new String();
    batch = alphabet[rand.nextInt(0, 26)] + alphabet[rand.nextInt(0, 26)] + alphabet[rand.nextInt(0, 26)] + rand.nextInt(1000, 9999);
    return batch;
}

然后我将一堆批号添加到 ObservableList

    ObservableList<String> batchNumber = FXCollections.observableArrayList();
    for(int i = 0; i < 10; i++){
        batchNumber.add(generateBatch());
    }

所以现在 batchNumber 加载了一堆字符串,然后我尝试将它们分配给 tableView

TableView<String> batchNumberTableView = new TableView<>();
TableColumn<String, ?> batchColumn = new TableColumn<>("Vaccine Batch Number");
batchNumberTableView.getColumns().add(batchColumn);

这就是我卡住的地方,我已经成功地将一列添加到表视图中,但我不知道如何将 batchNumber 中的数据分配到表视图中。

你需要

TableColumn<String, String> batchColumn = new TableColumn<>("Vaccine Batch Number");
batchColumn.setCellValueFactory(cellData -> new SimpleStringProperty(cellData.getValue()));