我试图在javafx(v10)中禁用日期选择器中的某些日期但是我一直在解决这个问题,即有效日期似乎会在向前和向后移动时改变css。这是一个已知的错误还是任何人都可以发现代码错误?
private void getDayCellFactory(DatePicker datePicker1) {
Callback<DatePicker, DateCell> dayCellFactory = (final DatePicker datePicker) -> new DateCell() {
@Override
public void updateItem(LocalDate item, boolean empty) {
super.updateItem(item, empty);
if (item.isAfter(LocalDate.now().plusDays(9))) {
setDisable(true);
}
if (item.isBefore(ChronoLocalDate.from(LocalDate.now()))) {
setDisable(true);
}
}
};
datePicker1.setDayCellFactory(dayCellFactory);
}
您必须在updateItem方法中处理空单元格。在updateItem方法中包含以下内容。在super.updateItem(item,empty)行下;
if (empty || item == null) {
setGraphic(null);
}
else { //your code }