posts - 1,  comments - 25,  trackbacks - 0

          年月控制這部分分為控制按鈕,月下拉列表和年Spinner(翻譯為微調控制器。。。。。。。)。控制按鈕沒什么好說的,無非就是控制加一減一,注意邊界循環就可以了。
          Spinner的用法很簡單,看下代碼:
              yearChooser = new Spinner(yearMonthChooser, SWT.READ_ONLY | SWT.BORDER);
          //初始化,只讀,帶邊框
                  yearChooser.addSelectionListener(
          new SelectionAdapter() {
                      
          public void widgetSelected(SelectionEvent e) {

                          
          int n = yearChooser.getSelection();

                          basicCalendar.set(Calendar.YEAR, n);
                          yearChooser.setSelection(n);
                          setDays();

                      }

                  }
          );
          //加上選擇事件監聽

                  yearChooser.setMaximum(
          3000);//設置上限
                  yearChooser.setMinimum(
          1899);//設置下限
                  yearChooser.setIncrement(
          1);//步進值
                  yearChooser.setPageIncrement(
          10);//這個是按下pageup和pagedown時的步進值
                  yearChooser.setSelection(basicCalendar.get(Calendar.YEAR));//選擇當前年

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

          以上是中文環境和英文環境下的測試效果。關鍵點是:月的信息從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);
              }

          posted on 2008-03-10 22:53 Daniel 閱讀(360) 評論(0)  編輯  收藏 所屬分類: SWT

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(3)

          隨筆檔案

          文章分類

          文章檔案

          相冊

          搜索

          •  

          最新評論

          主站蜘蛛池模板: 桐乡市| 清远市| 华容县| 普兰店市| 平阴县| 崇文区| 尉犁县| 大丰市| 屯昌县| 临泉县| 十堰市| 清镇市| 利辛县| 周口市| 滨州市| 九寨沟县| 雷州市| 昭觉县| 武夷山市| 泸溪县| 龙岩市| 新民市| 浦东新区| 门源| 河源市| 卢湾区| 思茅市| 朝阳市| 修文县| 收藏| 册亨县| 金山区| 万盛区| 刚察县| 临泉县| 安龙县| 道真| 灌阳县| 都匀市| 赤水市| 台中县|