在Swing中实现的一款日历控件

Swing
placeholder image
admin 发布于:2017-07-05 08:35:48
阅读:loading

基本描述

今天这篇文章想说的是在Java的图形化界面方面技术,没有经历过它的辉煌,知道它的人也越来越少了,工作这些年实际上几乎很少很少在项目中正式的用它做过东西,但这些年零零散散的使用它去做一些小小的程序,对于它的基础也算是基础没有丢下。

前段时间做了一个审批单制作器的小程序,功能实现上是根据系统当前日期去做的*作,本来想着提供一个日历控件让用户可以按需随意的选择日期,后来找了一下发型swing中并未提供一个日历的组件,后来在网上搜索倒是找到了许多类似组件,或者是由于这些代码量太多了,或者是由于显示出来的效果不够优美吧,最终并未提供给用户一个可选的日期(还有一个自己说服自己的原因是用户如果中间漏掉了某个时间的*作,可以通过修改电脑时间的方式来打到日期切换的目的,从而正常的使用软件)。

近期又有个需要使用swing来实现的需求,考虑到其中又使用到了日期选择,所以网上仔细的找了找代码,最后确定了一款日历组件,并修改了一下,这次准备使用到项目里面,这里也分享出来。顺便提一下个人理解的一次编写到处运行的意思是:将一个功能中使用到的一些通用代码通过优化、封装使其达到最佳程度,其他地方直接拿去使用。

需要说明的是本次日历控件的原有代码是从网上找的,一共找到了两款类似的日历组件,最终选择了其中一款,将其显示样式按照MyDate97的显示效果改写,后文将给出原有的效果图、修改后的效果图和代码等。 

第一款日历组件参考地址为:http://zgdeng.iteye.com/blog/1405650 ,代码量有6、7百行,确实太多了,支出Text和Label等,实现的有上一年、上一月、下一月、下一年、当前日期、系统时间的红框显示、当前选中时间的蓝底加边框显示等效果,显示效果参考为:

测试日期选择器.jpg

第二款日历组件参考地址为:http://www.cnblogs.com/icerainsoft/p/3428025.html 代码量跟上面的也差不多,实现的功能也基本一致,多了一个在日历数字上的鼠标滑过红色字体效果,参考效果图为:

Date Picker Test.jpg

由于起初对这一款感觉的更好一点,就准备改写一下这款组件,按照MyDate97的显示效果来,主要将上面的4个日历导航换成图片,所有的显示字体换成宋体12px、底部当前日期居中、标题栏加背景色、边框背景色、鼠标滑过背景色、当前月的日期黑色显示、非当前月的日期蓝色显示、所有日期的周六日红色字体显示、添加了默认加载日期组件(解决首次初始化日期组件时显示1.5秒慢的问题,或许是电脑配置引起的缓慢)等。使用时,它有好多种构造方法,很方便,参考效果图下图所示:

修改后的效果.bmp

怎么样,这效果图有没有以假乱真,如果不把整个窗口给截图下来,只包括中间的一部分你会不会认为这真的就是MyDate97呢?然而这些你很容易就能值得拥有。

源码下载

源代码.zip


 点赞


 发表评论

当前回复:作者

 评论列表


留言区