JavaFX分页,添加<<和>>>选项

时间:2015-06-16 14:15:59

标签: javafx pagination

我正在做一个数据显示应用程序,我需要为我的分页添加一个选项,可用于返回第一页(索引)或转到最后一页。

我已经尝试过向我的用户界面添加按钮,但它无法正常工作,因为我无法获取最后一个索引。

@FXML
void goToLastIndex(ActionEvent event) {
    int lastIndex = pagination.getPageCount();
    pagination.setCurrentPageIndex(lastIndex);
}

3 个答案:

答案 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)

根据JavadocspageCount的默认值为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);
        }

    });