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