public void setPageStart(int index) {
// Override so the last page is shown with a number of rows less
// than the pageSize rather than always showing the pageSize number
// of rows and possibly repeating rows on the last and penultimate page
if (getDisplay() != null) {
Range range = getDisplay().getVisibleRange();
int displayPageSize = getPageSize();
if (isRangeLimited() && getDisplay().isRowCountExact()) {
displayPageSize = Math.min(getPageSize(), getDisplay().getRowCount() - index);
}
index = Math.max(0, index);
if (index != range.getStart()) {
getDisplay().setVisibleRange(index, displayPageSize);
}
}
}