江蘇520

          江蘇520

          常用鏈接

          統計

          最新評論

          我的常用分頁類

          package yourpackage;   
          import java.util.ArrayList;   
            
          /**  
           * 分頁信息  
           * jdk 1.4  
           * 
          http://www.bt285.cn 
             
          http://www.5a520.cn
           
          */
            
          public class PageSet {   
            
              
          private int pageSize_default = 20;                                      /* 默認單頁信息數量 */  
            
              
          private int currentPage_default = 1;                                    /* 默認當前頁 */  
            
              
          private int pageSize = 20;                                              /* 單頁條目 */  
            
              
          private int currentPage = 1;                                            /* 當前頁 */  
            
              
          private int recordCount = 0;                                            /* 信息數量 */  
            
              
          private int pageMax = 1;                                                 /* 總頁數 */  
            
              
          private int startRow = 0;                                               /* 起始列 */  
            
              
          private int endRow = 0;                                                 /* 結束列 */  
            
              
          private boolean isStartRowReckoned = false;                                 /* 起始列是否被計算 */  
            
            
              
          /**  
               * 初始化必有參數  
               * 
          @param currentPage  
               * 
          @param recordCount  
               
          */
            
              
          public void init(int currentPage, int recordCount) {   
                  
          this.setCurrentPage(currentPage);   
                  
          this.setRecordCount(recordCount);   
          //        this.reckonStartRow();  /* 計算器起始列 */   
          //        this.reckonEndRow();   
              }
             
            
              
          /**  
               * 重新計算 頁面總數 和 當前頁  
               
          */
            
              
          public void reckonAll() {   
                  
          this.reckonPageMax();   /* 計算總頁數 */  
                  
          this.reckonCurrentPage(); /* 計算當前頁 */  
              }
             
            
              
          /**  
               * 計算當前頁頁碼  
               
          */
            
              
          public void reckonCurrentPage() {   
                  currentPage 
          = currentPage <= pageMax ? currentPage : pageMax;   
                  currentPage 
          = currentPage > 0 ? currentPage : currentPage_default;    /* 默認處理 */  
                  currentPage 
          = Kitchen.makeObjectConver(String.valueOf(currentPage)).getInt(); // 這個轉換要替換成自己的。這個String轉int的規則參見Php手冊。   
              }
             
            
              
          /**  
               * 獲取當前頁頁碼  
               * 
          @return  
               
          */
            
              
          public int getCurrentPage() {   
                  
          return currentPage;   
              }
             
            
              
          /**  
               * 設置當前頁頁碼  
               * 
          @param currentPage  
               
          */
            
              
          public void setCurrentPage(int currentPage) {   
                  
          this.currentPage = currentPage;   
              }
             
            
              
          /**  
               * 獲取默認起始頁碼  
               * 
          @return  
               
          */
            
              
          public int getCurrentPage_default() {   
                  
          return currentPage_default;   
              }
             
            
              
          /**  
               * 設置默認起始頁碼  
               * 
          @param currentPage_default  
               
          */
            
              
          public void setPageCurrent_default(int currentPage_default) {   
                  
          this.currentPage_default = currentPage_default;   
              }
             
            
              
          /**  
               * 計算頁面總數  
               
          */
            
              
          public void reckonPageMax() {   
                  
          boolean isRemainder = ((this.recordCount % this.pageSize) > 0);   
                  pageMax 
          = Kitchen.makeObjectConver(String.valueOf(this.recordCount / this.pageSize)).getInteger().intValue();   
                  
          if (isRemainder) {   
                      pageMax 
          = pageMax + 1;   
                  }
             
              }
             
            
              
          /**  
               * 獲取頁面總數  
               * 
          @return  
               
          */
            
              
          public int getPageMax() {   
                  
          return pageMax;   
              }
             
            
              
          /**  
               * 設定頁面總數  
               * 
          @param pageMax  
               
          */
            
              
          public void setPageMax(int pageMax) {   
                  
          this.pageMax = pageMax;   
              }
             
            
              
          /**  
               * 獲取單頁顯示條數  
               * 
          @return  
               
          */
            
              
          public int getPageSize() {   
                  
          return pageSize;   
              }
             
            
              
          /**  
               * 設置單頁顯示條數  
               * 
          @param pageSize  
               
          */
            
              
          public void setPageSize(int pageSize) {   
                  
          this.pageSize = pageSize;   
              }
             
            
              
          /**  
               * 獲取默認頁面顯示信息條數  
               * 
          @return  
               
          */
            
              
          public int getPageSize_default() {   
                  
          return pageSize_default;   
              }
             
            
              
          /**  
               * 設置默認頁面顯示信息條數  
               * 
          @param pageSize_default  
               
          */
            
              
          public void setPageSize_default(int pageSize_default) {   
                  
          this.pageSize_default = pageSize_default;   
              }
             
            
              
          /**  
               * 設置總記錄數  
               * 
          @return  
               
          */
            
              
          public int getRecordCount() {   
                  
          return recordCount;   
              }
             
            
              
          /**  
               * 獲取總記錄數  
               * 
          @param recordCount  
               
          */
            
              
          public void setRecordCount(int recordCount) {   
                  
          this.recordCount = recordCount;   
              }
             
            
              
          /**  
               * 計算當前頁起始行行號  
               
          */
            
              
          public void reckonStartRow() {   
                  
          this.reckonAll();   
                  isStartRowReckoned 
          = true;   
                  
          int _startRow = this.pageSize * (this.currentPage - 1);   
                  _startRow 
          = _startRow >= 0 ? _startRow : 0;   
                  _startRow 
          = Kitchen.makeObjectConver(String.valueOf(_startRow)).getInteger().intValue();   
                  
          this.startRow = _startRow;   
              }
             
            
              
          /**  
               * 獲取當前頁起始行行號  
               * 
          @return  
               
          */
            
              
          public int getStartRow() {   
                  
          this.reckonStartRow();   
                  
          return this.startRow + 1/* attention */  
              }
             
            
          //    public void setStartRow(int startRow) {   
          //        this.startRow = startRow;   
          //    }   
              /**  
               * 計算當前頁結束行行號  
               
          */
            
              
          public void reckonEndRow() {   
                  
          if (!isStartRowReckoned) {   
                      
          this.reckonStartRow();   
                  }
             
                  endRow 
          = startRow + this.pageSize;   
                  endRow 
          = endRow <= recordCount ? endRow : recordCount;   
                  endRow 
          = Kitchen.makeObjectConver(String.valueOf(endRow)).getInteger().intValue();   
              }
             
            
              
          /**  
               * 獲取當前頁結束行行數  
               * 
          @return  
               
          */
            
              
          public int getEndRow() {   
                  
          this.reckonEndRow();   
                  
          return endRow;   
              }
             
            
          //    public void setEndRow(int endRow) {   
          //        this.endRow = endRow;   
          //    }   
              /**  
               * 獲取第一頁頁碼  
               * 
          @return 1  
               
          */
            
              
          public int getFirstPage() {   
                  
          return 1;   
              }
             
            
              
          /**  
               * 獲取前一頁頁碼  
               * 
          @return  
               
          */
            
              
          public int getPrePage() {   
                  
          int prePage = this.currentPage - 1;   
                  prePage 
          = (prePage >= 1? prePage : 1;   
                  
          return prePage;   
              }
             
            
              
          /**  
               * 獲取下一頁頁碼  
               * 
          @return  
               
          */
            
              
          public int getNextPage() {   
                  
          int nextPage = this.currentPage + 1;   
                  nextPage 
          = (nextPage < this.pageMax) ? nextPage : this.pageMax;   
                  
          return nextPage;   
              }
             
            
              
          /**  
               * 獲取最后頁頁碼  
               * 
          @see #getPageMax()   
               * 
          @return  
               
          */
            
              
          public int getLastPage() {   
                  
          return this.pageMax;   
              }
             
            
              
          /**  
               * 獲取所有頁面列表  
               * 
          @return  
               
          */
            
              
          public ArrayList getPageList() {   
                  
          if (!this.isStartRowReckoned) {   
                      
          this.reckonAll();   
                  }
             
                  ArrayList pageList 
          = new ArrayList();   
                  
          for (int i = 1; i <= this.pageMax; i++{   
                      pageList.add(String.valueOf(i));   
                  }
             
                  
          return pageList;   
              }
             
            
              
          /**  
               * 獲取臨近頁面列表  
               * 應急寫的,還有很多需要改善的地方  
               * 
          @param count  
               * 
          @return  
               
          */
            
              
          public ArrayList getPageList(int count) {   
                  
          if (!this.isStartRowReckoned) {   
                      
          this.reckonAll();   
                  }
             
                  ArrayList pageList 
          = new ArrayList();   
                  count 
          = ((count % 2> 0? count + 1 : count; /* 轉化為偶數 */  
                  
          int minPage = this.currentPage - (count / 2);   
                  
          int startPage = minPage;   
                  
          int endPage = count + startPage;   
                  
          int jumper = 0;   
                  
          boolean isBreak = true;   
          //        int distance = 0;   
                  
          // 雙向逼近   
                  do {   
                      jumper
          ++;   
                      isBreak 
          = true;   
                      
          /**  
                       * 向后走 1 位  
                       
          */
            
                      
          if (startPage < 1{   
                          startPage
          ++;   
                          
          if (endPage < pageMax) {   
                              endPage
          ++;   
                          }
             
                          isBreak 
          = false;   
                      }
             
                      
          /**  
                       * 向前走 1 位  
                       
          */
            
                      
          if (endPage > pageMax) {   
                          endPage
          --;   
                          
          if (startPage > 1{   
                              startPage
          --;   
                          }
             
                          isBreak 
          = false;   
                      }
             
                      
          if (jumper > RuntimeConstants.jumper) {   
                          isBreak 
          = true;   
                      }
             
                  }
           while (!isBreak);   
                  
          for (int i = startPage; i <= endPage; i++{   
                      pageList.add(Integer.toString(i));   
                  }
             
                  
          return pageList;   
              }
             
            
              
          /**  
               * 對比頁面索引和當前頁并顯示相應內容  
               * 
          @param index  
               * 
          @param show  
               * 
          @param elseShow  
               * 
          @return  
               
          */
            
              
          public String compare(int index, String show, String elseShow) {   
                  
          if (this.currentPage != index) {   
                      show 
          = elseShow;   
                  }
             
                  
          return show;   
              }
             
          }
            

          http://www.feng123.com 這里有例子

          posted on 2009-05-13 16:54 江蘇520 閱讀(1640) 評論(0)  編輯  收藏

          主站蜘蛛池模板: 开阳县| 葵青区| 林甸县| 枣庄市| 镇原县| 莆田市| 兴安县| 南康市| 法库县| 海淀区| 昂仁县| 来安县| 绍兴市| 神木县| 沅江市| 海淀区| 内乡县| 页游| 临澧县| 吉林省| 白银市| 沂源县| 乐山市| 花莲县| 蕲春县| 剑川县| 准格尔旗| 卢氏县| 开阳县| 隆昌县| 开远市| 邛崃市| 黔东| 五寨县| 仙游县| 芦溪县| 清水河县| 阿尔山市| 车险| 郧西县| 昌黎县|