我的常用分页类
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;
}
}
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 这里有例子