我正在做一个数据显示应用程序,我需要为我的分页添加一个选项,可用于返回第一页(索引)或转到最后一页。
我已经尝试过向我的用户界面添加按钮,但它无法正常工作,因为我无法获取最后一个索引。
@FXML
void goToLastIndex(ActionEvent event) {
int lastIndex = pagination.getPageCount();
pagination.setCurrentPageIndex(lastIndex);
}
答案 0 :(得分:1)
您是否查看了分页的pageCountProperty。
/**
* Returns the number of pages.
*/
public final int getPageCount() { return pageCount.get(); }
/**
* The number of pages for this pagination control. This
* value must be greater than or equal to 1. {@link #INDETERMINATE}
* should be used as the page count if the total number of pages is unknown.
*
* The default is an {@link #INDETERMINATE} number of pages.
*/
public final IntegerProperty pageCountProperty() { return pageCount; }
答案 1 :(得分:1)
根据Javadocs,pageCount
的默认值为Pagination.INDETERMINATE
,其(或多或少任意)等于Integer.MAX_VALUE
。如果您的分页数量固定(如果没有,那么有一个"最后一页"),那么您应该通过调用constructor taking a page count value对其进行初始化,或致电setPageCount(...)
并指定页数。
答案 2 :(得分:0)
谢谢,我需要做的就是创建一个保持页面数量的变量,并将其与setOnAction一起使用。
int numberOfPage = (nbOfDataForCurrentType / ROW_PER_PAGE + 1);
pagination = new Pagination(numberOfPage, 0);
pagination.setPageFactory(param -> populateTableView(param));
getChildren().add(pagination);
if (numberOfPage > 1) {
btnEnd.onActionProperty().set(event -> pagination.setCurrentPageIndex(numberOfPage));
btnBegin.setOnAction(event -> pagination.setCurrentPageIndex(0));
getChildren().add(btnBegin);
getChildren().add(btnEnd);
}
});