我正在尝试创建日历以显示和修改日程安排。为此,我必须更改该日历中某些日期的颜色。我关注了examples,它创建了一个RangeEvaluator,并设法突出显示了日期。问题是,如果我单击该日期(例如,为了将其从繁忙修改为空闲,我需要这样做),它的颜色会恢复正常。下面是我的代码:
RangeEvaluator evaluator = new RangeEvaluator();
//get dates from DB:
Vector<Date> vd=SA.getCalendrier(transport);
evaluator.setVd(vd);
calendar.getDayChooser().addDateEvaluator(evaluator);发布于 2016-06-20 00:43:59
如here所示,您的IDateEvaluator可能会返回特定的前景和背景颜色来突出显示日期。请注意,当您单击突出显示的日期按钮时,前景颜色将保持设置。相反,正如前面提到的here,背景颜色属于所选择的外观。我会依赖前景色和工具提示;我会认为背景色突出显示是可选的。
作为一种解决办法,如here所示,您可以在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是一个日期选择器,而不是一个日程表。
https://stackoverflow.com/questions/36668202
复制相似问题