/** * 获取下一页 * */ 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; }}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货