我的tableview上有31列(第1天31天)和12行(月份名称)。我想搜索完整的表格(行式搜索)以获取数据(日期),并且只需为该匹配的单元格设置背景颜色。我可以看到可以设置背景颜色使用cellfactory函数在特定列中的单元格。
birthdayColumn.setCellFactory(column -> {
return new TableCell<Person, LocalDate>() {
@Override
protected void updateItem(LocalDate item, boolean empty) {
super.updateItem(item, empty);
if (item == null || empty) {
setText(null);
setStyle("");
}
// Style all dates in March with a different color.
if (item. == Month.MARCH) {
setTextFill(Color.CHOCOLATE);
setStyle("-fx-background-color: yellow");
} else {
setTextFill(Color.BLACK);
setStyle("");
}
};
});
这里只检查一个名为&#39; birthdayColumn&#39;。但在我的情况下,它应该在一个方法中检查所有表格单元格(行方向),并且只需要为该匹配单元格设置背景颜色。我该怎么做。提前谢谢你
答案 0 :(得分:0)
这应该有效:
LocalDate myBirthday = null; //initialize with the date you need to highlight
birthdayColumn.setCellFactory(column -> {
return new TableCell<Person, LocalDate>() {
@Override
protected void updateItem(LocalDate item, boolean empty) {
super.updateItem(item, empty);
if (item == null || empty) {
setText(null);
setGraphic(null);
}
else {
setText(item.toString());
setGraphic(null);
if (item.equals(myBirthday)) {
setTextFill(Color.CHOCOLATE);
setStyle("-fx-background-color: yellow");
}
else {
setTextFill(Color.BLACK);
setStyle("");
}
}
}};
});