我尝试将CheckBoxTableCell添加到我的TableColumn中,但是无论值是真还是假,单元格都只显示未选中的框
我的对象
public class Room {
private String id,type,category,floor,number;
private Boolean status;
//setter and getter
........
}
我如何声明该表
@FXML
private TableView<Room> roomTable;
@FXML
private TableColumn ....
@FXML
private TableColumn<Room,Boolean> statusColumn;
public void initialize(){
....
statusColumn.setCellValueFactory(new PropertyValueFactory<Room, Boolean>("status")); // here
statusColumn.setCellFactory(CheckBoxTableCell.forTableColumn(statusColumn));
....
}
我已经通过使用布尔属性类型创建一个新变量并使用新变量更改 PropertyValueFactory 参数解决了这个问题
,问题是我不想使用布尔属性或属性
,因为我的所有模型类仍然使用标准类型而不是属性
有办法做到这一点吗?
如果没有,也许我只是将所有模型类变量更改为属性变量
我会使用以下方法执行此操作:
statusColumn.setCellValueFactory(new Callback<CellDataFeatures<Room, Boolean>, ObservableValue<Boolean>>() {
@Override
public ObservableValue<Boolean> call(CellDataFeatures<Room, Boolean> room) {
return new ReadOnlyBooleanWrapper(room.getValue().getStatus());
}
});
statusColumn.setCellFactory(CheckBoxTableCell.forTableColumn(statusColumn));
现在,如果您的复选框不可编辑,这就可以正常工作。否则,您必须使用 Java Bean 属性来保持复选框和状态值同步。
为了使单元格与属性保持同步,需要在属性值更改时通知单元格。这是JavaFX属性类提供的功能。有很多方法可以绑定到传统的Java Bean属性,但是它们涉及更多的“连接”,并且最终会比使用JavaFX属性类更复杂。这个问题类似。
我试图在我的表单上添加一个布尔字段,并用crispyforms标记呈现它。除复选框外,所有内容都显示出来。 我的项目使用django 2.1、python 3.6和Bootstrap-4。我的Django Crispy Forms版本是:1.7。2. 领域为<码>投资。 模型字段不工作: My form: 我的观点: 对于模板,我尝试了两种方法,但都不起作用: 我的模板01: 这是我想在最后使用的
问题内容: 我有如下形式: 当我选中所有复选框并发布表单时,结果如下所示: 然后我取消选中第二个复选框并发布表单,结果是这样的: 当我取消选中第二个复选框时,是否有可能得到如下所示的结果: 有想法吗? 问题答案: 第一种方法-隐藏字段(缺点:用户可以操纵字段的值(但是也可以操纵复选框的值,因此,如果只期望1或0,这不是真正的问题)) 第二种方法-为未设置的索引分配默认值:
此表单在基于函数的视图中显示单选按钮,但在我引入基于类的视图时更改为复选框,有什么解决办法。我希望他们再次显示单选按钮 表单.py models.py 模板 views.py
问题内容: 我有一个JTable,我想用自定义渲染器尝试检查isEnabled()的所有禁用的复选框单元变灰,然后更改背景颜色,但仍然无法使用。有什么建议么?谢谢!!! 问题答案: 如“ 概念:编辑器和渲染器 ”中所述,“通常使用单个单元格渲染器来绘制包含相同类型数据的所有单元格。” 您需要维护表模型中的enabled状态。 附录:作为一个具体示例,此示例中的数据模型是一组简单的Date实例。ge
我想用复选框显示所有行,所有列,因为我只想要true/false值。但是我想访问单个单元格值,即每个复选框都可以选中/不选中。见下图。 根据我的知识,当我勾选复选框时,行的所有复选框都将被选中。那么,我可以选中/取消选中单个框吗?
我希望在选中表中的所有复选框时选中标题复选框,如果没有选中单个复选框,则应取消选中标题复选框。