
年月控制這部分分為控制按鈕,月下拉列表和年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);
}