首页 > 解决方案 > 在 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;
    }

}

标签: javanetbeansjcalendar

解决方案


推荐阅读