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/