为什么需要在方法updateIrem()中判断item == null || empty
?
table.setRowFactory(row -> new TableRow<Person>() {
@Override
public void updateItem(Person item, boolean empty) {
super.updateItem(item, empty);
if (item == null || empty) {
} else {
if (item.getFirstName().equals("Jacob")) {
setStyle("-fx-background-color: yellow");
}
}
}
});
答案 0 :(得分:0)
当UI决定更新项目时,会调用此方法。 empty
参数是UI告诉您单元格是否应为空的方式。请参阅方法&#39; s javaDoc:
我们测试
empty
条件,如果是,我们 将text和graphics属性设置为null。如果我们不这样做, 几乎可以保证最终用户将看到图形工件 意外地在细胞中。
具体而言,empty
参数描述为:
@param为空此单元格是否表示列表中的数据。如果它 是空的,那么它不代表任何域数据,而是一个单元格 被用来渲染一个空的&#34;行。
为什么我们不能仅依靠item == null
是组件创建者的实现决策这一事实,如果您需要确切知道,请尝试深入了解组件源代码。