gpt4 book ai didi

Java(fx) - TableView - 我理解 setCellValueFactory 和 PropertyValueFactory 的用法吗?

转载 作者:行者123 更新时间:2023-12-01 20:54:53 26 4
gpt4 key购买 nike

来自 eclipse 帮助:

setCellValueFactory

需要将单元格值工厂设置为指定如何填充单个 TableColumn 中的所有单元格。单元值工厂是一个提供 CellDataFeatures 实例的回调,并期望返回 ObservableValue。返回的 ObservableValue 实例将在内部被观察,以允许立即更新要反射(reflect)在屏幕上的值。

<小时/> CellDataFeatures

在 TableColumn 中用作包装类的支持类,用于为特定单元格提供所有必要的信息

<小时/> PropertyValueFactory

创建一个默认的 PropertyValueFactory,以使用给定属性名称以反射方式从给定 TableView 行项目中提取值。

<小时/> 用我的话解释:

myTableViewColumn.setCellValueFactory(new PropertyValueFactory<MyModelClass, String>("name"));

setCellValueFactory 指定如何填充myTableViewColumn 列中的所有单元格。这里使用的数据类型是属性。通过使用 PropertyValueFactory,我们通过查找名为“name”的属性(在 MyModelClass private final SimpleStringProperty name = new SimpleStringProperty(""); 中声明)来获取指定的属性。

我理解 setCellValueFactory 的用法了吗?和PropertyValueFactory

最佳答案

是的,这是正确的。另请注意,表的数据需要设置如下:

ObservableList<MyModelClass> tableData= FXCollections.observableArrayList();
table.setItems(tableData);

基本上,这个表有一个 MyModelClass 对象的列表。调用单元工厂将对象中的所需字段绑定(bind)到给定列中的单元格。

setCellValueFactory 也可以与 lambda 一起使用,而不是与 PropertyValueFactory 一起使用,如下所示。

myTableViewColumn.setCellValueFactory(cellData -> cellData.getValue().name);

两者都执行相同的操作,将对象列表中名称字段的值绑定(bind)到该列。

关于Java(fx) - TableView - 我理解 setCellValueFactory 和 PropertyValueFactory 的用法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42509381/

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