gpt4 book ai didi

JavaFX TableView .setCellValueFactory 为不带对象的字符串

转载 作者:太空宇宙 更新时间:2023-11-04 13:38:16 24 4
gpt4 key购买 nike

我有一个填充对象列表的表,在其中一个列中我有一个comboBoxColumn。虽然 combobox 列不是 object 类的一部分,但我只是希望它在列中显示一个 String

我该怎么做?无需设置 object 类。

comboBoxColumn.setCellValueFactory(new **Just String**);

这是代码

@FXML
TableView<Dog> BookDogTableView;

@FXML
TableColumn<Dog, String> BookDogNameCol;

@FXML
TableColumn<Dog, String> BookDogBreedCol;

@FXML
TableColumn<Dog, Integer> BookDogAgeCol;

@FXML
TableColumn<String, String> BookDogSelectRunCol;


BookDogNameCol
.setCellValueFactory(new PropertyValueFactory<Dog, String>(
"dogName"));

BookDogBreedCol
.setCellValueFactory(new PropertyValueFactory<Dog, String>(
"breed"));

BookDogAgeCol
.setCellValueFactory(new PropertyValueFactory<Dog, Integer>(
"age"));

BookDogSelectDogPane.setCellValueFactory(new **Just String**);

BookDogSelectRunCol.setCellFactory(ComboBoxTableCell.forTableColumn(runOptions));

BookDogTableView.setItems(customersDogs);

最佳答案

我不太确定我的理解是否正确。如果您只想在每一行的该列中显示相同的String,您可以执行以下操作:

@FXML
TableColumn<Dog, String> BookDogSelectRunCol;
...
BookDogSelectRunCol.setCellValueFactory(x -> new SimpleObjectProperty<>("Just String"));

这会将“Just String”传递到单元格。如果您只想在单元格中显示String,那么就完成了。如果您想像您提到的那样显示 ComboBox 并以某种方式使用 String,则必须使用 setCellFactory 方法。

BookDogSelectRunCol.setCellFactory(x -> new TableCell<>() {
@Override
protected void updateItem(String item, boolean empty) {
// Your code ...
}
});

在此示例中,item 的值将为“Just String”

但是,正如 James_D 已经指出的那样,传递给 TableColumn 的第一个类型参数必须与传递给 TableView 的类型相同。

关于JavaFX TableView .setCellValueFactory 为不带对象的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31479157/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com