Разбивка на страницы с данными из базы данных и контрольными флажками в JTable

Как я могу создать JTable, заполненный из базы данных Derby, с флажками разбиения на страницы и управления (удаление/редактирование данных).

Я знаю, как получить данные из базы данных:

public List<Customer> getDataOnPage(int pageIndex, int rowIndex)
{

List<Customer> dataOnPage = new ArrayList<>();

       //...

       while (rs.next())
       {
       Customer customer = new Customer();
       customer.setId(rs.getInt(1);
       customer.setName(rs.getString(2));
       dataOnPage.add(customer);
       }

       //....

return dataOnPage;

}

Создайте собственный класс AbstractTableModel с помощью специального метода:

public class CustomerAbstractTableModel
{

List<Customer> data = new ArrayList<>();

public void setData(List<Customer> data)
{
       this.data = data;
       super.fireTableDataChanged();
}

// overriden getRowCount(), getColumnCount() and getValueAt(int rowIndex, int columnIndex)

}

И оберните мой пользовательский AbstractTableModel в другой AbstracTtableModel, например здесь. Чтобы была колонка с флажками.

Затем создайте метод в моем классе просмотра, который разбивается на страницы и вызывается при нажатии кнопки (в методе actionPerformed(ActionEvent e))

int pageIndex = 0;

private void paginate()
{

       List<Customer> data = customerDao.getDataOnPage(pageIndex, 10);
       customerWrapperAbstractTableModel.setData(data);

}

Проблема с этим решением заключается в том, что всякий раз, когда я меняю страницу (разбивку на страницы), я теряю значения в флажках. Потому что установлены новые данные. Как я могу разбить на страницы и сохранить значения в флажках. Например, GMail имеет эту функцию.


person user3197001    schedule 01.02.2021    source источник