java - TableCell 不使用自定义 CellFactory 显示 item.toString() 值
问题描述
我在我的 TableColumn 上安装了自定义 CellValueFactory 和 CellFactory:我正在编写地址簿,Salutation 是一个具有值“先生”和“夫人”的枚举。
salutation.setCellValueFactory(c->new ReadOnlyObjectWrapper<>(c.getValue().getSalutation()));
salutation.setCellFactory((tableColumn)->new TableCell());
不幸的是,我的 CellFactory 设置的单元格没有显示任何内容。(注:其实我是想用一个自定义的TableCell,我只用了TableCell进行测试)。在每个单元格上显示 item.toString() 字符串的最佳方式是什么?
谢谢 :)
谢谢
解决方案
注意:其实我是想用一个自定义的TableCell,我只用了TableCell进行测试
这正是问题所在。TableCell
与默认单元工厂生成的单元类型不同,它只是简单地更新单元的empty
属性。删除此初始化或将工厂分配替换为
salutation.setCellFactory(TableColumn.DEFAULT_CELL_FACTORY);
将显示在单元格项目上调用的结果,toString
如下所示cellFactory
:
salutation.setCellFactory((tableColumn)->new TableCell() {
@Override
protected void updateItem(Object item, boolean empty) {
super.updateItem(item, empty);
setText(item == null ? "" : item.toString());
}
});
注意:我建议不要使用原始类型,但由于对所涉及的类型缺乏了解,所以我决定继续使用上述代码段中的原始类型。
推荐阅读
- javascript - mapDispatchToProps 中的 react-router 访问历史记录道具
- python - Python set __contains__ 没有找到集合中包含的对象
- javascript - AJAX console.log is returning undefined
- rest - 在自动加速 URL 后面访问 SharePoint REST API
- linux - 找不到函数时如何退出shell脚本?
- javascript - 提交按钮调用函数
- python - pyspark - Join two RDDs - Missing third column
- ios - UITextField 自定义清除按钮 - 输入前显示按钮
- python - 将多个列表写入 JSON 文件
- javascript - 如何根据动态变量将元素推入数组