gpt4 book ai didi

java - JCalendar设置特定日期颜色

转载 作者:行者123 更新时间:2023-12-02 07:00:40 27 4
gpt4 key购买 nike

我正在使用解决方案中的代码来设置 toedter 的 JCalendar 中特定日期的颜色 Add specific background colors to JDaychooser Dates 。此解决方案的问题在于,它为每个月设置了不同的日期,因为每个月的第一天都不同。

在我的示例中,我在事件数组列表中添加了 5 月 4 日和 9 月 4 日。+9 从这一天开始适用于 5 月,但在 9 月它将选择 7,因为该月的第一天从 +6 开始。

我想知道是否有办法获取该月的开始日期,但我似乎无法在 API 文档中找到执行此操作的方法。

enter image description here

这是我的代码:

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);
}
}

最佳答案

您需要的是获取该月第一天的偏移量。分析日历,您知道这与星期几相关联。

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())
{
// Calculate the offset of the first day of the month
cal.set(Calendar.DAY_OF_MONTH,1);
int offset = cal.get(Calendar.DAY_OF_WEEK) - 1;

//this value will differ from each month due to first days of each month
component[ events.get(i).getDay() + offset ].setBackground(Color.blue);
}
}

这有意义吗?

关于java - JCalendar设置特定日期颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16704414/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com