Java的日历是一个很常用的控件,实现界面布局从简单到复杂就有很多种,在加上公历和阴历的实现就更多了.这儿从最简单的做起,先做一个只能选择当前月的某一天的公历的简单日历,然后再做一个可以调整年月的日历,最后做一个加入阴历和节日的日历.
Java的日历实现也不复杂,不明白Sun为什么不加到JDK里面,主要是依靠java.util.Calendar类,依靠Calendar可以取得某一天是星期几,是一个月的第几天,也可以得出某个月第一天是星期几,某个月有多少天,这样就可以把日历的基本画出来了;再加上颜色设置和选择后的设置就可以实现基本的日历了.
先看最简单的效果,只实现一个月的选择:
再看一个可以选择年月日的,从一个JTextField里面点出下拉,这个是用JTable实现的,星期是JTable的Header,显示是JTable的单元格,只需要设置JTable的值和Renderer就可以显示组件了,值的计算是通过Calender实现的.
工程目录如下:
然后是一个用控件的形式来显示的,在JPanel上使用GridLayout,放置显示的组件,然后根据Canlendar设置值和显示:
工程目录如下:
最后是在上一个的基础上添加阴历,阴历实现是参考BlogJava的一个高手的:
工程目录如下:
本来是要详细写下日历的,然后在写其它的比如JtreeTable和2D绘制等东西呢,可惜公司现在基本不怎么使用Swing了,而且突然忙起来了,而我比较悲剧的是这个工作的上班地点在北五环,而我住在南三环,每天基本跨北京,一忙根本没时间写东西了,抽个星期天把以前的程序放在Google Code上了,也没时间整理了(好不容易周末,也得Dota几把呀),需要的自己去Down吧,大部分例子的XXXTest都是测试的方法.
Google
Code 地址: https://code.google.com/p/swingsource/