Java的日歷
Java的日歷是一個(gè)很常用的控件,實(shí)現(xiàn)界面布局從簡(jiǎn)單到復(fù)雜就有很多種,在加上公歷和陰歷的實(shí)現(xiàn)就更多了.這兒從最簡(jiǎn)單的做起,先做一個(gè)只能選擇當(dāng)前月的某一天的公歷的簡(jiǎn)單日歷,然后再做一個(gè)可以調(diào)整年月的日歷,最后做一個(gè)加入陰歷和節(jié)日的日歷.
Java的日歷實(shí)現(xiàn)也不復(fù)雜,不明白Sun為什么不加到JDK里面,主要是依靠java.util.Calendar類,依靠Calendar可以取得某一天是星期幾,是一個(gè)月的第幾天,也可以得出某個(gè)月第一天是星期幾,某個(gè)月有多少天,這樣就可以把日歷的基本畫出來了;再加上顏色設(shè)置和選擇后的設(shè)置就可以實(shí)現(xiàn)基本的日歷了.
先看最簡(jiǎn)單的效果,只實(shí)現(xiàn)一個(gè)月的選擇:

再看一個(gè)可以選擇年月日的,從一個(gè)JTextField里面點(diǎn)出下拉,這個(gè)是用JTable實(shí)現(xiàn)的,星期是JTable的Header,顯示是JTable的單元格,只需要設(shè)置JTable的值和Renderer就可以顯示組件了,值的計(jì)算是通過Calender實(shí)現(xiàn)的.


工程目錄如下:

然后是一個(gè)用控件的形式來顯示的,在JPanel上使用GridLayout,放置顯示的組件,然后根據(jù)Canlendar設(shè)置值和顯示:


工程目錄如下:

最后是在上一個(gè)的基礎(chǔ)上添加陰歷,陰歷實(shí)現(xiàn)是參考BlogJava的一個(gè)高手的:



工程目錄如下:

本來是要詳細(xì)寫下日歷的,然后在寫其它的比如JtreeTable和2D繪制等東西呢,可惜公司現(xiàn)在基本不怎么使用Swing了,而且突然忙起來了,而我比較悲劇的是這個(gè)工作的上班地點(diǎn)在北五環(huán),而我住在南三環(huán),每天基本跨北京,一忙根本沒時(shí)間寫東西了,抽個(gè)星期天把以前的程序放在Google Code上了,也沒時(shí)間整理了(好不容易周末,也得Dota幾把呀),需要的自己去Down吧,大部分例子的XXXTest都是測(cè)試的方法.
Google Code 地址: https://code.google.com/p/swingsource/
posted on 2010-05-09 23:18 zeyuphoenix 閱讀(10043) 評(píng)論(8) 編輯 收藏 所屬分類: Java日歷