Pagination 如何在JavaFX中为TableView实现分页?

Pagination 如何在JavaFX中为TableView实现分页?,pagination,javafx,tableview,Pagination,Javafx,Tableview,我有JavaFXTableView,希望实现TableView分页显示。 如何使用javaFx tableView实现分页显示?您必须使用该控件并实现页面工厂。应显示的每个页面都会调用工厂,您可以使用其参数pageIndex向TableView提供项目子列表: TableView table = ... private Node createPage(int pageIndex) { int fromIndex = pageIndex * rowsPerPage; int t

我有JavaFXTableView,希望实现TableView分页显示。 如何使用javaFx tableView实现分页显示?

您必须使用该控件并实现页面工厂。应显示的每个页面都会调用工厂,您可以使用其参数pageIndex向TableView提供项目子列表:

TableView table = ...

private Node createPage(int pageIndex) {

    int fromIndex = pageIndex * rowsPerPage;
    int toIndex = Math.min(fromIndex + rowsPerPage, data.size());
    table.setItems(FXCollections.observableArrayList(data.subList(fromIndex, toIndex)));

    return new BorderPane(table);
}


@Override
public void start(final Stage stage) throws Exception {

    Pagination pagination = new Pagination((data.size() / rowsPerPage + 1), 0);
    pagination.setPageFactory(this::createPage);
    ...
}
可在此处找到完整的可运行示例:

PS:我跟随jewelsea链接到Oracle JavaFX论坛,这个例子真的很糟糕。我想在这里提供一个干净的例子