Я использую код решения, чтобы установить цвета определенной даты в JCalendar toedter в Add specific background colors to JDaychooser Dates. Проблема с этим решением заключается в том, что он устанавливает другой день для каждого месяца, потому что первый день для каждого месяца отличается.JCalendar задает конкретные цвета даты
В моем примере я добавил 4 мая и 4 сентября в событиях arraylist. + 9 со дня работы мая, но в сентябре он выберет 7 вместо этого, потому что первый день месяца начинается с +6.
Мне интересно, есть ли способ получить дату начала месяца, но я не могу найти способ, который делает это в документации API.
Heres мой код:
Calendar cal = Calendar.getInstance();
cal.setTime(calendar.getDate());
int day = cal.get(Calendar.DAY_OF_MONTH);
int month = cal.get(Calendar.MONTH);
int year = cal.get(Calendar.YEAR);
JPanel jpanel = calendar.getDayChooser().getDayPanel();
Component component[] = jpanel.getComponents();
//arraylist of events
for(int i = 0; i < events.size(); i++)
{
//selected month and year on JCalendar
if(month == events.get(i).getMonth() && year == events.get(i).getYear())
{
//this value will differ from each month due to first days of each month
component[ events.get(i).getDay() + 9 ].setBackground(Color.blue);
}
}
В качестве альтернативы, реализуйте 'IDateEvaluator', как показано [здесь] (http://stackoverflow.com/a/37899883/230513). – trashgod