📄 partitionpage.java
字号:
package mrgf.other;
import java.util.*;
/**
* @作者 马文强
* 分页显示逻辑Bean
* 2006-8-8
*/
public class PartitionPage {
public PartitionPage() {
}
private int currentPage = 1; //当前页
private int totalPages = 0; //总页数
private int pageRecorders = 0; //每页几条数据
private int totalRows = 0; //总数据数
private int pageStartRow = 0; //每页的起始数
private int pageEndRow = 0; //每页显示数据的终止数
private boolean hasPreviousPage = false; //是否有前一页
private boolean hasNextPage = false; //是否有下一页
private List messages; //要分页的数据
//初始化页面信息参数
public void initPageBean(List messages, int pageRecorders) {
this.messages = messages;
this.pageRecorders = pageRecorders;
this.currentPage = 1;
totalRows = messages.size();
//计算总页数
if ((totalRows % pageRecorders) == 0) {
totalPages = totalRows / pageRecorders;
} else {
totalPages = totalRows / pageRecorders + 1;
}
//默认无上一页
this.hasPreviousPage=false;
//判断是否有下一页
if (currentPage >= totalPages) {
hasNextPage = false;
} else {
hasNextPage = true;
}
//确定第一页结束的记录数
if (totalRows < pageRecorders) {
this.pageEndRow = totalRows;
} else {
this.pageEndRow = pageRecorders;
}
}
//设置指定页相关信息
public ArrayList getAppointPage(int currentPage) {
this.currentPage = currentPage;
//判断指定页码是否超出范围
if (currentPage <= 0) {
currentPage = 1;
}
if (currentPage > totalPages) {
currentPage = totalPages;
}
if (currentPage == totalPages) {
hasNextPage = false;
} else {
hasNextPage = true;
}
if (currentPage > 1) {
hasPreviousPage = true;
} else {
hasPreviousPage = false;
}
ArrayList pageMessages = this.getPageMessages();
return pageMessages;
}
//设置前一页相关信息
public ArrayList getPreviousPage() {
currentPage = currentPage - 1;
if (currentPage == 0) {
currentPage = 1;
}
if (currentPage >= totalPages) {
hasNextPage = false;
} else {
hasNextPage = true;
}
if ((currentPage - 1) > 0) {
hasPreviousPage = true;
} else {
hasPreviousPage = false;
}
ArrayList pageMessages = this.getPageMessages();
return pageMessages;
}
//设置下一页相关信息
public ArrayList getNextPage() {
currentPage = currentPage + 1;
if (currentPage > totalPages) {
currentPage = totalPages;
}
if ((currentPage - 1) > 0) {
hasPreviousPage = true;
} else {
hasPreviousPage = false;
}
if (currentPage >= totalPages) {
hasNextPage = false;
} else {
hasNextPage = true;
}
ArrayList pageMessages = this.getPageMessages();
return pageMessages;
}
//封装页面信息
public ArrayList getPageMessages() {
if (currentPage * pageRecorders < totalRows) {
pageEndRow = currentPage * pageRecorders;
pageStartRow = pageEndRow - pageRecorders;
} else {
pageEndRow = totalRows;
pageStartRow = pageRecorders * (totalPages - 1);
}
ArrayList pageMessages = new ArrayList(pageEndRow - pageStartRow + 1);
if (!(totalRows == 0)) {
int j = 0;
for (int i = pageStartRow; i < pageEndRow; i++) {
Object dataVO = (Object) messages.get(i);
pageMessages.add(dataVO);
}
// this.description();
}
return pageMessages;
}
//返回当前页
public String getCurrentPage() {
return this.toString(currentPage);
}
//返回每页记录数
public int getPageRecorders() {
return pageRecorders;
}
//返回每页开始与结束的记录数
public int getPageStartRow() {
return pageStartRow;
}
public int getPageEndRow() {
return pageEndRow;
}
//返回总页数
public String getTotalPages() {
return this.toString(totalPages);
}
//返回总记录数
public String getTotalRows() {
return this.toString(totalRows);
}
//返回是否有上一页
public boolean isHasPreviousPage() {
return hasPreviousPage;
}
//返回是否有下一页
public boolean isHasNextPage() {
return hasNextPage;
}
//将整型转换成字符串
public String toString(int temp) {
String str = Integer.toString(temp);
return str;
}
//信息描述,供测试用
public void description() {
System.out.println("------要显示的页面数据已经封装,具体信息如下:");
String description = "------共有数据数:" + this.getTotalRows() +
" / 共有页数:" + this.getTotalPages() +
" / 当前页数为:" + this.getCurrentPage() +
" / 是否有前一页:" + this.isHasPreviousPage() +
" / 是否有下一页:" + this.isHasNextPage() +
" / 本页开始行数:" + this.getPageStartRow() +
" / 本页终止行数:" + this.getPageEndRow();
System.out.println(description);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -