org.casic.javafx.control.PaginationPicker用法
org.casic.javafx.control.PaginationPicker
是 CASIC(或某位作者)基于 JavaFX 自制的分页控件,功能比官方 Pagination
更完整,支持:
首页 / 上一页 / 下一页 / 尾页按钮
页码快速跳转
每页条数自定义
总数据量、当前页码、总页数实时展示
样式、字体大小可调
下面给出最小可运行示例,演示如何在 纯 Java 和 FXML 两种场景中使用。
1. 引入 jar
把 PaginationPicker.jar
放进项目 classpath 即可(Maven/Gradle 本地库或普通 Java 工程均可)。下载地址见 。
2. 纯 Java 方式
java
复制
public class PaginationTest extends Application {@Overridepublic void start(Stage stage) {PaginationPicker picker = new PaginationPicker();// 1. 基本配置picker.setTotal(127); // 总条数picker.setPageSize(10); // 每页条数picker.setPageButtonCount(9); // 可见页码按钮数(奇数 5~21)picker.setCurrentPage(1); // 当前页(必须在最后设置)picker.setPaginationButtonFontSize(12);// 2. 监听页码变化picker.setOnAction(e ->System.out.println("当前页:" + picker.getCurrentPage()));VBox root = new VBox(picker);root.setPadding(new Insets(20));stage.setScene(new Scene(root));stage.show();}public static void main(String[] args) {launch(args);}
}
3. FXML 方式
xml
复制
<?xml version="1.0" encoding="UTF-8"?><?import javafx.scene.layout.VBox?>
<?import javafx.geometry.Insets?>
<?import org.casic.javafx.control.PaginationPicker?><VBox xmlns="http://javafx.com/javafx/17" spacing="10"><padding><Insets topRightBottomLeft="20"/></padding><PaginationPicker fx:id="picker"total="200"pageSize="20"pageButtonCount="7"currentPage="1"paginationButtonFontSize="12"/>
</VBox>
控制器示例:
java
复制
public class PickerController {@FXML private PaginationPicker picker;@FXMLpublic void initialize() {picker.setOnAction(e ->System.out.println("FXML 当前页:" + picker.getCurrentPage()));}
}
4. 常用 API 速查
表格
复制
方法 | 含义 | 默认值 |
---|---|---|
setTotal(int) | 总条数 | 0 |
setPageSize(int) | 每页条数 | 30 |
setPageButtonCount(int) | 可见页码按钮数(奇数 5~21) | 7 |
setCurrentPage(int) | 当前页码(最后设置) | 1 |
setPaginationButtonFontSize(int) | 按钮字体大小(≥2) | 10 |
getCurrentPage() | 读取当前页码 | — |
5. 注意事项
必须最后调用
setCurrentPage
,否则可能无效。JDK 版本:该控件内部用到了 JavaFX 8 的
com.sun.*
类,若运行在 JDK 11+,请确保运行时添加了 JavaFX SDK 并加--add-modules javafx.controls,javafx.fxml
。若 IDEA 内置 Scene Builder 打不开,使用外部 Scene Builder 即可(见上一条回答)。
这样即可在项目中快速集成 PaginationPicker