登录 
欢迎来到陈冬冬(雪地里走)的学习天地 | 经验分享整理平台 | 陈冬冬
 服务器本次启动于:8天前 

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

2017-06-16 23:03:19 阅读:()

       今天这篇文章想说的是在Java的图形化界面方面技术,没有经历过它的辉煌,知道它的人也越来越少了,工作这些年实际上几乎很少很少在项目中正式的用它做过东西,但这些年零零散散的使用它去做一些小小的程序,对于它的基础也算是基础没有丢下。
       前段时间做了一个审批单制作器的小程序,功能实现上是根据系统当前日期去做的操作,本来想着提供一个日历控件让用户可以按需随意的选择日期,后来找了一下发型swing中并未提供一个日历的组件,后来在网上搜索倒是找到了许多类似组件,或者是由于这些代码量太多了,或者是由于显示出来的效果不够优美吧,最终并未提供给用户一个可选的日期(还有一个自己说服自己的原因是用户如果中间漏掉了某个时间的操作,可以通过修改电脑时间的方式来打到日期切换的目的,从而正常的使用软件)。
      近期又有个需要使用swing来实现的需求,考虑到其中又使用到了日期选择,所以网上仔细的找了找代码,最后确定了一款日历组件,并修改了一下,这次准备使用到项目里面,这里也分享出来。顺便提一下个人理解的一次编写到处运行的意思是:将一个功能中使用到的一些通用代码通过优化、封装使其达到最佳程度,其他地方直接拿去使用。
      需要说明的是本次日历控件的原有代码是从网上找的,一共找到了两款类似的日历组件,最终选择了其中一款,将其显示样式按照MyDate97的显示效果改写,后文将给出原有的效果图、修改后的效果图和代码等。 
       第一款日历组件参考地址为:
http://zgdeng.iteye.com/blog/1405650 ,代码量有6、7百行,确实太多了,支出Text和Label等,实现的有上一年、上一月、下一月、下一年、当前日期、系统时间的红框显示、当前选中时间的蓝底加边框显示等效果,显示效果参考为:

 


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

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

图片


       怎么样,这效果图有没有以假乱真,如果不把整个窗口给截图下来,只包括中间的一部分你会不会认为这真的就是MyDate97呢?然而这些你很容易就能值得拥有。
代码下载
      可将上图中的效果图另存为本地(存储到本地的图片文件778KB的大小),使用压缩工具打开,会看到一个source.zip的压缩包,里面包括了修改后的代码和上述两款的实现代码。参考如图所示:




你可能感兴趣的:
      关键字:效果图(6)mydate(3)背景色(3)swing(3)com(2)
      互动()
      评论()
      比起点赞,站长更喜欢登录后的评论
      • 0
      • 0
      • 0
      • 0
      • 0