0

我正在尝试创建一个日历来显示和修改日程。为此,我必须更改该日历中某些日期的颜色。我遵循了创建并设法突出显示日期的示例。RangeEvaluator问题是,如果我单击该日期(例如,我需要将其从忙碌修改为空闲),它的颜色就会恢复正常。这是我的代码:

RangeEvaluator evaluator = new RangeEvaluator();
//get dates from DB:
    Vector<Date> vd=SA.getCalendrier(transport);
    evaluator.setVd(vd);
    calendar.getDayChooser().addDateEvaluator(evaluator);
4

1 回答 1

1

如此处所示,您IDateEvaluator可能正在返回特定的前景色和背景色以突出显示日期。请注意,当您单击突出显示的日期按钮时,前景色保持设置。相反,正如这里提到的,背景颜色属于所选的外观。我会依赖前景色和工具提示;我认为背景颜色突出显示是可选的。

作为一种解决方法,如图所示您可以在您的中设置一个绑定属性PropertyChangeListener来重新配置按钮,但所选按钮仍将根据外观呈现。选择突出显示的按钮以查看效果。

JCalendar jc = new JCalendar();
jc.getDayChooser().addDateEvaluator(evaluator);
jc.setDate(Calendar.getInstance().getTime());
jc.addPropertyChangeListener("calendar", new PropertyChangeListener() {
    @Override
    public void propertyChange(PropertyChangeEvent e) {
        jc.setDate(Calendar.getInstance().getTime());
        …
    }
});

更一般地,请注意这JCalendar是一个日期选择器,而不是一个日程安排

于 2016-06-19T16:43:58.957 回答