Java 向 JCalendar 添加图标

Java add icon to JCalendar

我正在尝试将特定日期的图标添加到 JCalendar 中,但我做不到。

我该怎么做?

我有这个代码:

final JCalendar calendar = new JCalendar();
    JDayChooser day= calendar.getDayChooser();
    day.setAlwaysFireDayProperty(true);
    day.addPropertyChangeListener(new PropertyChangeListener() {
        public void propertyChange(PropertyChangeEvent e) {
            //put icon here
            ImageIcon icon = new ImageIcon("icon.png");
            JLabel label = new JLabel(icon);
            day.add(label);

        }

编辑: 一天就要图标了

不支持向 JDayChooser 的按钮添加图标。您必须扩展 JDayChooser 并修改名为 days 的受保护数组中的按钮之一。由于面板已经相当拥挤,我不确定效果是否吸引人。

或者,实现 IDateEvaluator 接口并更改所选日期的颜色,如 here, here 和分发中的其他实现 classes 所示; class com.toedter.calendar.demo.BirthdayEvaluator 说明了该方法。

public boolean isSpecial(Date date) {
    calendar.setTime(date);
    return calendar.get(Calendar.MONTH) == yourSpecialMonth
    && calendar.get(Calendar.DAY_OF_MONTH) == yourSpecialDay;
}

public Color getSpecialForegroundColor() {
    return yourSpecialForegroundColor;
}

public Color getSpecialBackroundColor() {
    return yourSpecialBackroundColor;
}