JCalendar和IDateEvaluator以及PropertyChangeListener

时间:2017-07-24 19:27:23

标签: java jcalendar propertychangelistener

我正在尝试使用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),如果isApecial函数在列表中,则为true。其余功能是特殊时的颜色。 希望有人可以帮助我!

0 个答案:

没有答案