JavaFX DatePicker 禁用未来日期
JavaFX DatePicker disable future dates
我想允许用户 select 从 DateChooser 到当前日期。如何在 JavaFX 的 DatePicker 中禁用未来日期?
您应该设置一个 DayCellFactory。这允许您基本上控制日期选择器的所有样式元素,包括是否将指定日期之后的日期显示为灰色。
datePicker.setDayCellFactory(param -> new DateCell() {
@Override
public void updateItem(LocalDate date, boolean empty) {
super.updateItem(date, empty);
setDisable(empty || date.compareTo(LocalDate.now()) > 0 );
}
});
PS:任何包含单元格的节点(TableView、DatePicker、ListView 等)都可以覆盖其 updateItem
方法,这允许您根据其配置该单元格的样式数据。请谨慎使用,并始终确保包含它附带的 super.updateItem()
。
我想允许用户 select 从 DateChooser 到当前日期。如何在 JavaFX 的 DatePicker 中禁用未来日期?
您应该设置一个 DayCellFactory。这允许您基本上控制日期选择器的所有样式元素,包括是否将指定日期之后的日期显示为灰色。
datePicker.setDayCellFactory(param -> new DateCell() {
@Override
public void updateItem(LocalDate date, boolean empty) {
super.updateItem(date, empty);
setDisable(empty || date.compareTo(LocalDate.now()) > 0 );
}
});
PS:任何包含单元格的节点(TableView、DatePicker、ListView 等)都可以覆盖其 updateItem
方法,这允许您根据其配置该单元格的样式数据。请谨慎使用,并始终确保包含它附带的 super.updateItem()
。