问题描述
如何使用分页和“控制”复选框(删除/编辑数据)创建从 Derby 数据库填充的 JTable
。
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
中,例如 here。具有带复选框的列。
然后在我的“视图”类中创建“分页”并在按钮点击时调用的方法(在 actionPerformed(ActionEvent e)
方法中)
int pageIndex = 0;
private void paginate()
{
List<Customer> data = customerDao.getDataOnPage(pageIndex,10);
customerWrapperAbstractTableModel.setData(data);
}
此解决方案的问题在于,每当我更改页面(分页)时,复选框中的值都会丢失。因为设置了新数据。如何在复选框中分页和保留值。比如 GMail 就有这个功能。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)