java jcalendar,Java将图标添加到JCalendar

I'm trying to add an icon to a specific day into a JCalendar, but I can't.

How can I do that?

I have this code:

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

}

Edit: I want the icon in a day.

解决方案

Adding an icon to the buttons of a JDayChooser is not supported. You'd have to extend JDayChooser and modify one of the buttons in the protected array named days. As the panel is already fairly crowded, I'm not sure the effect would be appealing.

Alternatively, implement the IDateEvaluator interface and alter the colors for your chosen date, as shown here, here and other implementing classes in the distribution; the class com.toedter.calendar.demo.BirthdayEvaluator illustrates the approach.

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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
之前在网上想找一个简单易用的周日历选择插件,发现这种前端周日历插件很少,而且很多文章写的周的算法都不是统一的,所以自己实现了一个基于jquery的周日历插件(还支持跳转到指定年份和周哦)。 插件中周的算法:每周以周日为起始,第一周以每年第一个星期四所在的周为第一周(网上找的好像这个算法比较正规) 实现的效果是在手机端,也可以在PC端用,毕竟功能才是主要的。如果觉得样式不入眼可以自行随意修改。 //调用周日历方法 var weekfn = new jcalendar_week({ element: "#jcalendar_week",//填充日历的dom元素 dayaddclass:function(date){ //添加某天时给添加类名(参数:1.日期)(返回类名字符串,多个以空格分开) return ""; }, dayclick:function(date,obj){ //day点击事件(参数:1.日期,2.所点击DOM元素) $(obj).addClass("calendar_day_act").siblings().removeClass("calendar_day_act"); } }); 点击上方显示当前年份和周的DOM部分可选择并跳转到指定年份和周。 插件提供的方法: //获取周第一天方法weekfirstdate(),传入年份和周数 console.log(weekfn.weekfirstdate(2018,36)); //获取传入日期为当年第几周getweeknum(),传入年,月,日(注:这里的月份从0开始) console.log(weekfn.getweeknum(2018,0,16)); //跳转到指定周confirmweek(),传入年份和周数 weekfn.confirmweek(getyear,getweek); //跳转到本周nowweek() weekfn.nowweek();

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值