0

我正在尝试使用 IDateEvaluator 从 toedter 在 JCalendar 上绘制一组特定日期,但是......在将 DateEvaluator 添加到 DayChooser 之后没有任何反应。在这里的一篇文章中,我注意到我需要将我的 JCalendar 日历设置为自身,以便它可以更新......但由于我在 monthChooser 和 YearChooser 上有一些 PropertyChangeListeners 并且这是调用着色函数的侦听器,我无法将其设置为自身因为它只是不断地循环激活它们。这是我的代码:

    monthChooser.addPropertyChangeListener("month", new PropertyChangeListener() {
            @Override
            public void propertyChange(PropertyChangeEvent e) {
                if(e.getPropertyName().equals("month")){
                    JCalendar calendarAux = setNewMonth(monthChooser.getMonth(), yearChooser.getYear());
                    calendar.setCalendar(calendarAux.getCalendar());
                }
            }
        });

    yearChooser.addPropertyChangeListener("year", new PropertyChangeListener(){
            @Override
            public void propertyChange(PropertyChangeEvent e){
                if(e.getPropertyName().equals("year")){
                    JCalendar calendarAux = setNewMonth(monthChooser.getMonth(), yearChooser.getYear());
                    calendar.setCalendar(calendarAux.getCalendar());
                }
            }
        });

    public JCalendar setNewMonth(int month, int year){
    monthDate = calendarSearch.getMonth(month, year);
    List<Date> datesList = getDates();
    System.out.println("Hello, im here");
    if(!datesList.isEmpty()){
        for(Date date : datesList){
        System.out.println(date + "Hello, im here too!");
        }
        HighlightEvaluator highlightEvaluator = new HighlightEvaluator(datesList);
        calendar.getDayChooser().addDateEvaluator(highlightEvaluator);
        lblNewLabel_1.setText(calendarSearch.getTotalMonthDistance(month, year));
    }
    return calendar;
}

HighlightEvaluator 实现 IDateEvaluator 只是 List(Date) 并且如果它在列表中,isSpecial 函数为 true。其余功能是特殊时的颜色。希望可以有人帮帮我!

4

0 回答 0