Jcalendar 1.4 with DateEvaluator.
Can i change Border or Font for one field (one day) somehow ?
I need better to distinguish events in the calendar not only change Background and Text Color.
Can i override something on IDateEvaluator?
Deklaration:
private final Event_01 evaluator_01 = new Event_01();
add item to IdateEvaluator
private void addEvent_01_Calendar(int day, int monht, int year) {
evaluator_01.add(createDate(day, monht, year));
}
repaint calendar and add Date Evaluator
private void repaintEventCalendar() {
jCalendar.getDayChooser().addDateEvaluator(evaluator_01);
jCalendar.getDayChooser().addDateEvaluator(evaluator_02);
jCalendar.getDayChooser().addDateEvaluator(evaluator_03);
jCalendar.getDayChooser().addDateEvaluator(evaluator_04);
jCalendar.getDayChooser().addDateEvaluator(evaluator_03_Y);
jCalendar.getDayChooser().addDateEvaluator(evaluator_03_N);
jCalendar.setCalendar(jCalendar.getCalendar());
}
package other;
import com.toedter.calendar.IDateEvaluator;
import java.awt.Color;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class Event_01 implements IDateEvaluator {
private final List<Date> list = new ArrayList<>();
public void add(Date date) {
list.add(date);
}
public List getList() {
return list;
}
public void remove(Date date) {
for (int i = 0; i < list.size(); i++) {
if (compareDate(list.get(i), date) == 1) {
list.remove(i);
}
}
}
@Override
public boolean isSpecial(Date date) {
return list.contains(date);
}
@Override
public Color getSpecialForegroundColor() {
return Color.BLACK;
}
@Override
public Color getSpecialBackroundColor() {
return Color.RED;
}
@Override
public String getSpecialTooltip() {
return "Illness";
}
@Override
public boolean isInvalid(Date date) {
return false;
}
@Override
public Color getInvalidForegroundColor() {
return null;
}
@Override
public Color getInvalidBackroundColor() {
return null;
}
@Override
public String getInvalidTooltip() {
return null;
}
}