1 import java.util.ArrayList;
2 import java.util.List;
3
4 public class Page<T> {
5
6 private int startIndex; //该页的起始行数
7 private int pageNum; //当前页码
8 private int totalPageNum; //总页数
9 private int totalNum; //总记录数
10 private int pageSize = 2; //每页显示的记录数量
11 private List<T> list; //当前页的结果集
12
13
14 public Page(int count,int pageNum) {
15 this.setTotalNum(count);
16 this.setPageNum(pageNum);
17 }
18
19 public int getStartIndex() {
20 return startIndex;
21 }
22 public int getPageNum() {
23 return pageNum;
24 }
25 /**
26 * 设置当前的页码
27 * @param pageNum
28 */
29 public void setPageNum(int pageNum) {
30 if(pageNum <= 0) {
31 pageNum = 1;
32 } else if(pageNum > totalPageNum) {
33 pageNum = totalPageNum;
34 }
35 this.pageNum = pageNum;
36 this.startIndex = (this.pageNum - 1) * pageSize;
37 }
38 public int getTotalPageNum() {
39 return totalPageNum;
40 }
41
42 public int getTotalNum() {
43 return totalNum;
44 }
45 /**
46 * 设置总记录数
47 * @param totalNum
48 */
49 public void setTotalNum(int totalNum) {
50 this.totalNum = totalNum;
51 int temp = totalNum / pageSize;
52 if(totalNum % pageSize != 0) {
53 temp++;
54 }
55 this.totalPageNum = temp;
56 }
57 public List<T> getList() {
58 return list;
59 }
60 public void setList(List<T> list) {
61 this.list = list;
62 }
63 public int getPageSize() {
64 return pageSize;
65 }
66 public void setPageSize(int pageSize) {
67 this.pageSize = pageSize;
68 }
69
70 //count为页面中显示多少页,pageNum表示当前页码
71 public List<Integer> getSlider(int count,int pageNum) {
72 int halfSize = count / 2;
73 int totalPage = getTotalPageNum();
74 count -= 1;
75
76 int startPageNo = Math.max(pageNum - halfSize, 1);
77 int endPageNo = Math.min(startPageNo + count, totalPage);
78
79 if (endPageNo - startPageNo != count) {
80 startPageNo = Math.max(endPageNo - count, 1);
81 }
82
83 List<Integer> result = new ArrayList<Integer>();
84 for (int i = startPageNo; i <= endPageNo; i++) {
85 result.add(i);
86 }
87 return result;
88 }
89
90
91
92 }