
年月控制這部分分為控制按鈕,月下拉列表和年Spinner(翻譯為微調控制器。。。。。。。)。控制按鈕沒什么好說的,無非就是控制加一減一,注意邊界循環就可以了。
Spinner的用法很簡單,看下代碼:

//初始化,只讀,帶邊框












//加上選擇事件監聽






月的下拉列表看似簡單實則不然,因為我們要考慮國際化的問題。


以上是中文環境和英文環境下的測試效果。關鍵點是:月的信息從Locale中取。以下是關鍵代碼:
private?void?initMonth()?{
????????DateFormatSymbols?dateFormatSymbols?=?new?DateFormatSymbols(locale);
????????String[]?monthNames?=?dateFormatSymbols.getMonths();
????????int?month?=?monthChooser.getSelectionIndex();
????????if?(monthChooser.getItemCount()?>?0)?{
????????????monthChooser.removeAll();
????????}
????????for?(int?i?=?0;?i?<?monthNames.length;?i++)?{
????????????String?name?=?monthNames[i];
????????????if?(name.length()?>?0)?{
????????????????monthChooser.add(name);
????????????}
????????}
????????if?(month?<?0)?{
????????????month?=?0;
????????}?else?if?(month?>=?monthChooser.getItemCount())?{
????????????month?=?monthChooser.getItemCount()?-?1;
????????}
????????monthChooser.select(month);
????}
????????DateFormatSymbols?dateFormatSymbols?=?new?DateFormatSymbols(locale);
????????String[]?monthNames?=?dateFormatSymbols.getMonths();
????????int?month?=?monthChooser.getSelectionIndex();
????????if?(monthChooser.getItemCount()?>?0)?{
????????????monthChooser.removeAll();
????????}
????????for?(int?i?=?0;?i?<?monthNames.length;?i++)?{
????????????String?name?=?monthNames[i];
????????????if?(name.length()?>?0)?{
????????????????monthChooser.add(name);
????????????}
????????}
????????if?(month?<?0)?{
????????????month?=?0;
????????}?else?if?(month?>=?monthChooser.getItemCount())?{
????????????month?=?monthChooser.getItemCount()?-?1;
????????}
????????monthChooser.select(month);
????}
?