java - 在 NetBens 中使用 addDateEvaluator() 方法后如何启用 JCalendar 按钮?
问题描述
我的问题是这个。我有一个 JCalendar,我通过这种方法禁用了我想要的日子。
private void jButtonActionPerformed(java.awt.event.ActionEvent evt) {
List<DayOfWeek> invalidDays = Arrays.asList(DayOfWeek.MONDAY, DayOfWeek.FRIDAY);
JCalendar.getDayChooser().addDateEvaluator(new DayOfWeekEvaluator(invalidDays));
JCalendar.setCalendar(JCalendar.getCalendar());
}
到那时还好。走这条路
通过另一种方法,我想再次启用 Jcalendar 按钮,我尝试使用removeDateEvaluator()
.
我尝试如下:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
List<DayOfWeek> invalidDays = Arrays.asList(DayOfWeek.MONDAY, DayOfWeek.FRIDAY);
JCalendar.getDayChooser().removeDateEvaluator(new DayOfWeekEvaluator(invalidDays));
JCalendar.setCalendar(JCalendar.getCalendar());
}
但没有成功。
DayOfWeekEvaluator
我从论坛上得到的课程如下:
public class DayOfWeekEvaluator implements IDateEvaluator {
private final List<DayOfWeek> validDaysOfWeek;
public DayOfWeekEvaluator(List<DayOfWeek> validDaysOfWeek) {
this.validDaysOfWeek = validDaysOfWeek;
}
private DayOfWeek determineDayOfWeek(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);
return DayOfWeek.of(convertSundayFirstToMondayFirst(dayOfWeek));
}
private int convertSundayFirstToMondayFirst(int sundayFirstValue) {
// Converts from weeks that are Sunday-Saturday (1-7)
// to weeks that are Monday-Sunday (1-7)
if (sundayFirstValue == 1) {
return 7;
}
return sundayFirstValue - 1;
}
}
解决方案
推荐阅读
- python - 使用 petl 和 Python 扩展一季度月的列
- python - docker docs中的Python缩进错误
- jquery - Twitter-Bootstrap Datepicker - 显示一个月的最后一天
- php - 使用 laravel 进行路由
- azure - 如何在 Azure 中配置虚拟机的 dns 以指向另一个域
- java - 使用助记符的按键未初始化操作
- android - 为什么我的自定义任务没有使用 android build 执行?
- r - 过滤数据框
- spring - Quartz 调度器,仅限某些服务器
- python-3.x - 如何对文本文件中的加速度计数据进行分类?