Paginasi dengan data dari database dan kotak centang kontrol di JTable

Bagaimana cara membuat JTable diisi dari database Derby dengan pagination dan kotak centang kontrol (hapus/edit data).

Saya tahu cara mendapatkan data dari database:

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;

}

Buat kelas AbstractTableModel khusus dengan metode khusus:

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)

}

Dan bungkus AbstractTableModel khusus saya ke AbstracTtableModel lain seperti di sini. Untuk memiliki kolom dengan kotak centang.

Kemudian buat metode di kelas tampilan saya yang membuat halaman dan dipanggil dengan mengklik tombol (dalam metode actionPerformed(ActionEvent e))

int pageIndex = 0;

private void paginate()
{

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

}

Masalah dengan solusi ini adalah setiap kali saya mengubah halaman (membuat halaman) saya akan kehilangan nilai di kotak centang. Karena data baru ditetapkan. Bagaimana saya bisa membuat halaman dan menyimpan nilai di kotak centang. Misalnya GMail memiliki fitur ini.


person user3197001    schedule 01.02.2021    source sumber