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 閱讀(364) 評論(0)  編輯  收藏 所屬分類: SWT

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


          網站導航:
           
          <2025年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          常用鏈接

          留言簿(3)

          隨筆檔案

          文章分類

          文章檔案

          相冊

          搜索

          •  

          最新評論

          主站蜘蛛池模板: 高台县| 五原县| 定边县| 德昌县| 新竹县| 扶风县| 彰化县| 济宁市| 肥西县| 太保市| 江川县| 随州市| 渭源县| 虎林市| 登封市| 林州市| 喀喇沁旗| 台山市| 靖西县| 固始县| 宜君县| 罗平县| 连州市| 福泉市| 丹寨县| 沐川县| 荥阳市| 安乡县| 榆社县| 乌鲁木齐市| 安溪县| 娄烦县| 武威市| 林州市| 涿州市| 平原县| 河东区| 鹿泉市| 金湖县| 正安县| 阿瓦提县|