【发布时间】:2018-10-06 10:53:32
【问题描述】:
我的 cellFactory 有问题。 我希望如果在 FX TableView 中将 Date 设置为我的对象,updateItem 方法会检查它是否是有效日期。如果不是,则单元格应为红色。
_availableCol.setCellFactory(column -> {
return new TableCell<SimpleReservationUnit, LocalDate>() {
@Override
protected void updateItem(LocalDate date, boolean empty) {
super.updateItem(date, empty);
if (empty || date == null) {
setText(null);
}else {
if (date.compareTo(_newDeparture.getValue()) < 0) {
setStyle("-fx-background-color: red");
}else{
setStyle("");
}
}
}
};
});
着色有效,但从未将 LocalDate 设置为单元格。据我了解,这应该发生在 super() 调用中。 为该列实现了一个 CellValueFactory:
_availableCol.setCellValueFactory(new PropertyValueFactory<>("Available"));
任何想法我做错了什么?
【问题讨论】:
-
“据我了解,这应该发生在
super()电话中。”。否:TableCell.updateItem(...)没有设置任何文本。
标签: java user-interface javafx javafx-8