package util;

import java.util.List;

public class PageManager

{

private List allRecords = null;//collection储存同一类型的对象的集合

private int currentPage = 0;//当前页码

private int totalPage = 0;//总页数

private int recordPerPage = -1;//每页的对象数

private int totalCount=0;//总的对象数

//初始化

public PageManager(List allRecords, int recordPerPage)

{

if (allRecords == null || recordPerPage < 1) return;

this.allRecords = allRecords;

this.recordPerPage = recordPerPage;

this.totalCount=allRecords.size();

if (allRecords.size() % recordPerPage == 0)

this.totalPage = allRecords.size() / recordPerPage;

else

this.totalPage = allRecords.size() / recordPerPage + 1;

this.currentPage = 0;

}

//获取所有对象集合

public List getAllRecords()

{

return this.allRecords;

}

//获取当前页的的对象集合

public List getCurrentPage()

{

return getPage(currentPage);

}

//根据序号获取该对象所在的页的对象集合

public List getThePage(int recordno)

{

if (this.allRecords == null || this.allRecords.size() == 0)

{

this.currentPage = 0;

return null;

}

int pageNo=1;

if (recordno < 1) pageNo = 1;

else if (recordno > this.allRecords.size())

pageNo = this.totalPage;

else

{

pageNo=recordno/this.recordPerPage+1;

}

this.currentPage = pageNo;

int pageStart = (pageNo - 1) * this.recordPerPage;

int pageEnd = pageStart + this.recordPerPage - 1;

if (pageEnd > this.allRecords.size() - 1) pageEnd = this.allRecords.size() - 1;

List result =this.allRecords.subList(pageStart, pageEnd+1);

return result;

}

//根据页码获取改页的对象集合

public List getPage(int pageNo)

{

if (this.allRecords == null || this.allRecords.size() == 0)

{

this.currentPage = 0;

return null;

}

if (pageNo < 1) pageNo = 1;

if (pageNo > this.totalPage) pageNo = this.totalPage;

this.currentPage = pageNo;

int pageStart = (pageNo - 1) * this.recordPerPage;

int pageEnd = pageStart + this.recordPerPage - 1;

if (pageEnd > this.allRecords.size() - 1) pageEnd = this.allRecords.size() - 1;

List result =this.allRecords.subList(pageStart, pageEnd+1);

return result;

}

//获取下一页的对象集合

public List getNextPage()

{

return getPage(this.currentPage + 1);

}

//获取上一页的对象集合

public List getPreviousPage()

{

return getPage(this.currentPage - 1);

}

//获取第一页的对象集合

public List getFirstPage()

{

return getPage(1);

}

//获取最后一页的对象集合

public List getLastPage()

{

return getPage(this.totalPage);

}

//获取总页数

public int getTotalPage() {

return totalPage;

}

//获取当前页码

public int getCurrentPageCount()

{

return this.currentPage;

}

//获取对象总数

public int getTotalCount() {

return totalCount;

}

}

Let life be beautiful like summer flowers and death like autumn leaves.

posted on 2008-06-07 10:19 Alexwan 阅读(1852) 评论(0)  编辑  收藏

更多推荐

java实现翻页_java中简单的翻页功能的实现(PageManager)