/**         * 获取下一页         *         */        public void nextPage() {              if (this.currentPage != this.totalPage ) {                     this.currentPage++;              }              if (this.currentPage == this.totalPage){                                   }                     }        /**         * 获取上一页         *         */       public void previousPage() {              if (this.currentPage != 1) {                                          this.currentPage--;              }       }       /**        * 获取最后页        *        */       public void lastPage() {              if (this.currentPage == this.totalPage ) {                     //RowPerPage = restDate;                     return ;              } else {                      this.currentPage = this.totalPage ;              }        }       /**        * 获取首页        *        */       public void firstPage() {              if (this.currentPage == 1) {                     return;              } else {                     this.currentPage = 1;              }       }       /**        * 获取总页数        * @return        */       public int getTotalPage() {              return this.totalPage;       }       /**        * 获取当前页数        * @return        */       public int getCurrentPage() {              return this.currentPage;       }}其他的方法就很容易对应到Swing上的Button事件了,只需要调用就可以了,我这里的缺点是很多参数都是静态变量,当初因为我的工程设计的表很多。所以设计成这样的,我建议大家将上面的属性都改成私有变量并用set get 属性器来获取。以上是Swing JTable的分页机制。二,struts 分页import java.util.ArrayList;//负责传入一个大的集合,根据页号返回所需要的数据/* * 页数=  记录条数%每页条数==0     记录条数/每页条数    否则          记录条数/每页条数+1    第N页显示第几条记录(记录从0开始算)? (N-1)*每页条数=<序号< N*每页条数 * */public class PageController {       private ArrayList bigList;              //大的集合,外界传入       private int curentPageIndex = 1;    //当前页号,外界传入       private int countPerpage       = 5; //每页条数,外界可以设定       private ArrayList smallList;           //小的集合,返回       private int pageCount;                  //页数       private int recordCount;               //记录条数       private int prePageIndex;              //上一页序号       private int nextPageIndex;            //下一页序号       private boolean firstPage;             //是否第一页       private boolean lastPage;              //是否最后一页              public void setCurentPageIndex(int curentPageIndex) {      //每当页数改变,都会调用这个函数,筛选代码可以写在这里                         this.curentPageIndex = curentPageIndex;                            //上一页,下一页确定              prePageIndex = curentPageIndex - 1;              nextPageIndex = curentPageIndex + 1;              //是否第一页,最后一页              if(curentPageIndex==1){                     firstPage = true;              }              else{                     firstPage = false;              }              if(curentPageIndex==pageCount){                     lastPage = true;              }              else{                     lastPage = false;              }              //筛选工作              smallList = new ArrayList();              for(int i=(curentPageIndex-1)*countPerpage; i<curentPageIndex*countPerpage&&i<recordCount; i++){                     smallList.add(bigList.get(i));              }            }       public int getCurentPageIndex() {              return curentPageIndex;       }       public ArrayList getBigList() {              return bigList;       }       public void setBigList(ArrayList bigList) {              this.bigList = bigList;              //计算条数              recordCount = bigList.size();              //计算页数              if(recordCount%countPerpage==0){                     pageCount = recordCount/countPerpage;              }              else{                     pageCount = recordCount/countPerpage + 1;              }                     }       public int getCountPerpage() {              return countPerpage;       }       public void setCountPerpage(int countPerpage) {              this.countPerpage = countPerpage;       }       public ArrayList getSmallList() {              return smallList;       }       public void setSmallList(ArrayList smallList) {              this.smallList = smallList;       }       public int getPageCount() {              return pageCount;       }       public void setPageCount(int pageCount) {              this.pageCount = pageCount;       }       public int getRecordCount() {              return recordCount;       }       public void setRecordCount(int recordCount) {              this.recordCount = recordCount;       }       public int getNextPageIndex() {              return nextPageIndex;       }       public void setNextPageIndex(int nextPageIndex) {              this.nextPageIndex = nextPageIndex;       }       public int getPrePageIndex() {              return prePageIndex;       }       public void setPrePageIndex(int prePageIndex) {              this.prePageIndex = prePageIndex;       }       public boolean isFirstPage() {              return firstPage;       }       public void setFirstPage(boolean firstPage) {              this.firstPage = firstPage;       }       public boolean isLastPage() {              return lastPage;       }       public void setLastPage(boolean lastPage) {              this.lastPage = lastPage;       }}