【问题标题】:How to change colors of specific dates in JCalendar?如何更改 JCalendar 中特定日期的颜色?
【发布时间】:2017-12-02 08:21:03
【问题描述】:

我在从 JCalendar 更改特定日期的颜色时遇到问题。在某些情况下,我可以正确更改日期面板的颜色,如下所示:

它正确突出显示了我从数据库中检索到的 10 月 5 日和 13 日。

但大多数情况下突出显示的日期不正确,如下所示:

它应该突出显示 2017 年 12 月 10 日,而不是 5 日。从周日到周四,它似乎没有计算空组件,这就是它显示第 5 个的原因。

我尝试遵循解决方案here,但我不明白该怎么做。如果您能在不过多更改代码的情况下帮我解决这个问题,我将不胜感激。

conn=sqlconn.ConnectDB();
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH,1);
int offset = cal.get(Calendar.DAY_OF_WEEK);
int mon = calendar.getMonthChooser().getMonth() + 1;
int yr = calendar.getYearChooser().getYear();
JPanel jPanel = calendar.getDayChooser().getDayPanel();
Component component[] = jPanel.getComponents();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

String sql = "SELECT DAYOFMONTH(reserve_date) as day, MONTH(reserve_date) as month, YEAR(reserve_date) as year  FROM reservation";
    try
    {
    pst = conn.prepareStatement(sql);
    rs = pst.executeQuery();
    text.setText("");
    while(rs.next()){
        int dayOfMonth = rs.getInt("day");
        int month = rs.getInt("month");
        int year = rs.getInt("year");

        if(mon == month && yr == year){
            component[dayOfMonth + offset].setBackground(Color.green);
        }

    }
    pst.close();
    rs.close();
}
catch(Exception e)
{
    JOptionPane.showMessageDialog(null, e);
}
finally{
        try{
            rs.close();
            pst.close();
        }catch(Exception e){JOptionPane.showMessageDialog(null, e);}
    }

【问题讨论】:

    标签: java mysql database netbeans-8 jcalendar


    【解决方案1】:

    我通过在本月的第一周找到不可见的组件来解决这个问题。

     for(int i = 7; i < 14; i++){
                if(component[i].isVisible() == false){
                    ctr++;
                }
            }
    

    然后我只是将 ctr 的值添加到数组元素中:

    if(mon == month && yr == year){
            component[dayOfMonth + offset + ctr].setBackground(Color.green);
        }
    

    一切正常。我希望这对某人有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-10
      • 2021-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-05
      • 1970-01-01
      • 2014-03-22
      相关资源
      最近更新 更多