У меня есть эта база данных с 15 элементами, которые я загружаю в виде таблицы и устанавливаю количество строк на 10. Он загружает первые 10 (на странице 1) и с использованием разбивки на страницы он загружает последние 5 (на странице 2). Однако, когда я двигаюсь вперед с разбивкой на страницы, он падает. Очевидно, что больше нет строк с элементами для показа, но все же, как я могу это исправить?разбиение на страницы разбивает мое приложение
public class ProductListController implements Initializable {
@FXML private Pagination page;
@Override
public void initialize(URL url, ResourceBundle rb) {
assert tableview !=null : " ";
ProductName.setCellValueFactory(cellData -> cellData.getValue().productNameProperty());
ProductPrice.setCellValueFactory(cellData -> cellData.getValue().productPriceProperty());
Stock.setCellValueFactory(cellData -> cellData.getValue().productStockProperty());
Supplier.setCellValueFactory(cellData -> cellData.getValue().productSupplierProperty());
Contact.setCellValueFactory(cellData -> cellData.getValue().productContactProperty());
buildData();
}
private ObservableList<MyTable> data;
private Node createPage(int pageIndex) {
int rowsPerPage = 10;
int fromIndex = pageIndex * rowsPerPage;
int toIndex = Math.min(fromIndex + rowsPerPage, data.size());
tableview.setItems(FXCollections.observableArrayList(data.subList(fromIndex, toIndex)));
return (tableview);
}
public void buildData(){
data = FXCollections.observableArrayList();
try{
MyConnection mc = new MyConnection();
ResultSet rs;
rs = mc.getConnection();
while (rs.next()) {
MyTable mod = new MyTable();
mod.productName.set(rs.getString("NAME"));
mod.productPrice.set(rs.getString("SELL_PRICE"));
mod.productStock.set(rs.getInt("STOCK"));
mod.productSupplier.set(rs.getString("SUPPLIER"));
mod.productContact.set(rs.getString("CONTACT"));
data.add(mod);
page.setPageFactory(this::createPage);
}
}
catch (SQLException | IOException err) {
System.out.println(err.getMessage());
}
}
}
Сбои? Или выбрасывает исключение? Если он выдает исключение, разместите трассировку стека. –
Исключение: Исключение в потоке «Тема приложения JavaFX» java.lang.IllegalArgumentException: fromIndex (20)> toIndex (15) – Ophichius