javafx - JavaFX DatePicker - 控制上/下个月天数的显示
问题描述
我正在使用 dayCellFactory 来格式化显示。我已经实现了禁用上一个日期,只允许选择星期一,并在选择日期时突出显示时间段。
final Callback<DatePicker, DateCell> dayCellFactory = new Callback<DatePicker, DateCell>() {
@Override
public DateCell call(final DatePicker datePicker) {
return new DateCell() {
@Override
public void updateItem(LocalDate item, boolean empty) {
super.updateItem(item, empty);
if (item.isBefore(LocalDate.now().minusWeeks(1).plusDays(1))) {
setDisable(true);
setStyle("-fx-background-color: #d3d3d3;");
}
else if (item.getDayOfWeek() != DayOfWeek.MONDAY) {
setDisable(true);
}
if (selectedDate != null) {
LocalDate startDate = selectedDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
if (item.isAfter(startDate) && item.isBefore(startDate.plusWeeks(weeksInPeriod))) {
setStyle("-fx-background-color: #ffc0cb;");
}
}
}
};
}
};
我唯一想不通的是如何只在我的日历上显示当前月份的日期(而不是 LocalDate.now().getMonth() 中的当前月份,即 DatePicker 弹出窗口中当前显示的月份)。
解决方案
推荐阅读
- ansible - 使用ansible从用户那里读取密码
- excel - 如何在 VBA 中使用“长”型颜色
- javascript - 减少高度材料文本字段
- mysql - 将我们的 Google App Engine Python API 连接到 Digital Ocean 上的外部 MySQL 数据库
- python-3.x - IndexError: list index out of range: When try to display digits into English words
- javascript - 我怎么知道我在哪个组件中
- audiokit - 如何在使用振荡器时消除滑行效应?
- java - javax.net.ssl.SSLPeerUnverifiedException:将 Spring Boot 从 2.1.0 升级到 2.2.0.M3 后未通过身份验证
- html - 引导表单:自定义文件按钮工作但不显示上传文件的名称
- java - 在容器化 web 应用程序时,它卡在复制 war 文件