在 Java 中实现“上一页 / 下一页”的分页功能,常见的场景是在 Web 应用或控制台程序中显示分页数据。以下是一个简单的控制台分页示例,也适用于思考分页逻辑:
✅ 控制台版分页示例(上一页 / 下一页)
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class PaginationDemo {
public static void main(String[] args) {
List<String> items = new ArrayList<>();
for (int i = 1; i <= 50; i++) {
items.add("Item " + i);
}
final int pageSize = 10;
int currentPage = 1;
int totalPage = (int) Math.ceil((double) items.size() / pageSize);
Scanner scanner = new Scanner(System.in);
String command;
while (true) {
// 显示当前页内容
int start = (currentPage - 1) * pageSize;
int end = Math.min(start + pageSize, items.size());
System.out.println("\n当前页: " + currentPage + " / " + totalPage);
for (int i = start; i < end; i++) {
System.out.println(items.get(i));
}
// 显示分页操作
System.out.println("\n输入命令:n(下一页),p(上一页),q(退出)");
command = scanner.nextLine();
if (command.equalsIgnoreCase("n")) {
if (currentPage < totalPage) {
currentPage++;
} else {
System.out.println("已经是最后一页!");
}
} else if (command.equalsIgnoreCase("p")) {
if (currentPage > 1) {
currentPage--;
} else {
System.out.println("已经是第一页!");
}
} else if (command.equalsIgnoreCase("q")) {
System.out.println("退出分页!");
break;
} else {
System.out.println("无效的命令!");
}
}
scanner.close();
}
}
📝 Web应用中的分页思路(以Servlet为例):
int pageSize = 10;
int currentPage = Integer.parseInt(request.getParameter("page"));
int start = (currentPage - 1) * pageSize;
List<Item> items = itemService.getItems(start, pageSize);
// 然后在 JSP 中显示数据,并添加“上一页”、“下一页”链接
是否需要Web分页、数据库分页、还是Swing分页?
如果你是在做:
- Web 项目:需要结合前端分页按钮
- 数据库分页:用 SQL 的
LIMIT
语句 - 桌面程序(Swing/JavaFX):可以结合按钮事件监听来切换页数
可以告诉我你使用的环境,我可以给你更具体的代码(比如 JSP、Spring Boot、Swing、JavaFX 等)。
发表回复