gpt4 book ai didi

java - CheckBoxTableCell 如何传播更改回来?

转载 作者:太空宇宙 更新时间:2023-11-04 07:11:42 25 4
gpt4 key购买 nike

我有一个关于 JavaFX 库的特殊问题,这可能会揭示我对 JavaFX 框架的总体理解中的缺陷。

让我们假设有一个名为 Entity 的实体类有一个 BooleanPropertychecked 。此外,还有一个表格列如下:

TableColumn<Entity,Boolean> checkBoxColumn;

然后单元格值工厂的 setter 具有以下签名:

setCellValueFactory(Callback<TableColumn.CellDataFeatures<Entity,Boolean>,ObservableValue<Boolean>> value)

以下代码应该足以启用带有绑定(bind)到 checked 的复选框的列。相应实体对象的属性:

setCellValueFactory(new PropertyValueFactory<Entity, Boolean>("checked"));
checkBoxColumn.setCellFactory(CheckBoxTableCell.forTableColumn(checkBoxColumn));

我的问题以最简单的形式:CheckBoxTableCell 是如何做到的?考虑单元值工厂返回 ObservableValue<Boolean> 的事实来设置支持属性的值而不是,例如 BooleanProperty

我能想象这是如何完成的唯一方法是 CheckBoxTableCell动态检查单元格值工厂返回的引用是否实际上是对属性的引用,然后将此属性绑定(bind)到复选框的选中属性。

最佳答案

The only way how I can imagine how this is done is that the CheckBoxTableCell dynamically checks whether the reference returned by the cell value factory is actually a reference to a property and then binds this property to the checked property of the checkBox.

这正是它的作用。没有什么复杂的:只是使用一个简单的 instanceof 检查。源代码为here如果您足够感兴趣(请查看 updateItem(...) 方法)。

关于java - CheckBoxTableCell 如何传播更改回来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20563191/

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