1
/** *//**
2
* 實現簡單分頁功能。
3
* <p>Title: </p>
4
* <p>Description: </p>
5
* <p>Copyright: Copyright (c) 2005</p>
6
* <p>Company: </p>
7
* @author JekLin
8
* @version 1.0
9
*/
10
public class Pagination
11
implements java.io.Serializable
{
12
private int pageLeng = 1; //每一頁長度
13
private int totalPage; //總頁數
14
private int pageNum = 0; //當前頁數
15
private ArrayList table; //用來做分數據表
16
private ArrayList alist = new ArrayList();
17
public Pagination()
{
18
19
}
20
21
public Pagination(ArrayList table)
{
22
this.table = table;
23
this.info();
24
}
25
26
private void info()
{ //分析數據表
27
if (this.table != null)
{
28
int rows = table.size();
29
this.totalPage = rows / pageLeng; //設置總頁數
30
if (rows % pageLeng != 0)
{
31
this.totalPage++;
32
}
33
ArrayList aList = new ArrayList();
34
for (int i = 0; i < rows; i++)
{
35
aList.add(table.get(i));
36
}
37
this.alist = aList;
38
39
}
40
}
41
42
/** *//**
43
* 所有行數量
44
* @return int
45
*/
46
public int getRows()
{
47
if (table == null)
{
48
return -1;
49
}
50
return this.table.size();
51
}
52
53
/** *//**
54
*
55
* @param table ArrayList
56
*/
57
public void setTable(ArrayList table)
{
58
this.table = table;
59
this.info();
60
61
}
62
63
/** *//**
64
* 每一頁長度
65
* @return int
66
*/
67
public int getPageLeng()
{
68
return this.pageLeng;
69
}
70
71
public void setPageLeng(int pageLeng)
{
72
this.pageLeng = pageLeng;
73
}
74
75
/** *//**
76
* 總頁數
77
* @return int
78
*/
79
public int getTotalPage()
{
80
return this.totalPage;
81
}
82
83
/** *//**
84
* 當前頁數
85
* @return int
86
*/
87
public int getPageNum()
{
88
return this.pageNum;
89
}
90
91
/** *//**
92
* 首頁
93
* @return ArrayList
94
*/
95
public ArrayList getFirst()
{
96
ArrayList aList = new ArrayList();
97
for (int i = 0; i < this.pageLeng; i++)
{
98
if (i < alist.size())
{
99
aList.add(alist.get(i));
100
}
101
}
102
this.pageNum = 1;
103
return aList;
104
}
105
106
/** *//**
107
* 上一頁
108
* @return ArrayList
109
*/
110
public ArrayList getRrevious()
{
111
ArrayList aList = new ArrayList();
112
if (pageNum == 1)
{
113
return this.getFirst();
114
}
115
for (int i = (pageNum - 2) * pageLeng; i < (pageNum - 1) * pageLeng; i++)
{
116
if (i < alist.size())
{
117
aList.add(alist.get(i));
118
}
119
}
120
pageNum--;
121
return aList;
122
}
123
124
/** *//**
125
* 下一頁
126
* @return ArrayList
127
*/
128
public ArrayList getNext()
{
129
ArrayList aList = new ArrayList();
130
if (pageNum == totalPage)
{
131
return this.getLast();
132
}
133
for (int i = pageNum * pageLeng; i < (pageNum + 1) * pageLeng; i++)
{
134
if (i < alist.size())
{
135
aList.add(alist.get(i));
136
}
137
}
138
pageNum++;
139
return aList;
140
}
141
142
/** *//**
143
* 最后一頁
144
* @return ArrayList
145
*/
146
public ArrayList getLast()
{
147
ArrayList aList = new ArrayList();
148
for (int i = (totalPage - 1) * pageLeng; i < totalPage * pageLeng; i++)
{
149
if (i < alist.size())
{
150
aList.add(alist.get(i));
151
152
}
153
}
154
this.pageNum = this.totalPage;
155
return aList;
156
}
157
158
/** *//**
159
* 根基頁碼跳轉
160
* @param num int
161
* @return ArrayList
162
*/
163
public ArrayList getForPageNum(int num)
{
164
ArrayList aList = new ArrayList();
165
if (alist != null && alist.size() <= 0)
{
166
return aList;
167
}
168
for (int i = (num - 1) * pageLeng; i < num * pageLeng; i++)
{
169
if (i < alist.size())
{
170
aList.add(alist.get(i));
171
}
172
}
173
this.pageNum = num;
174
return aList;
175
}
176
177
/** *//**
178
* 是否為第一頁
179
* @return boolean
180
*/
181
public boolean isFirst()
{
182
if (this.pageNum <= 1)
{
183
return true;
184
}
185
return false;
186
}
187
188
/** *//**
189
* 是否為最后一頁
190
* @return boolean
191
*/
192
public boolean isLast()
{
193
if (this.pageNum >= this.totalPage)
{
194
return true;
195
}
196
return false;
197
}
198
199
}
200
201


2

3

4

5

6

7

8

9

10

11



12

13

14

15

16

17



18

19

20

21



22

23

24

25

26



27



28

29

30



31

32

33

34



35

36

37

38

39

40

41

42


43

44

45

46



47



48

49

50

51

52

53


54

55

56

57



58

59

60

61

62

63


64

65

66

67



68

69

70

71



72

73

74

75


76

77

78

79



80

81

82

83


84

85

86

87



88

89

90

91


92

93

94

95



96

97



98



99

100

101

102

103

104

105

106


107

108

109

110



111

112



113

114

115



116



117

118

119

120

121

122

123

124


125

126

127

128



129

130



131

132

133



134



135

136

137

138

139

140

141

142


143

144

145

146



147

148



149



150

151

152

153

154

155

156

157

158


159

160

161

162

163



164

165



166

167

168



169



170

171

172

173

174

175

176

177


178

179

180

181



182



183

184

185

186

187

188


189

190

191

192



193



194

195

196

197

198

199

200

201
