El problema que tienes es de planteo, lo que tu quieres paginar
no es el modelo ya que los datos que están en el modelo son los datos que actualmente están visibles en la pantalla, lo que tienes que paginar son
los datos antes de agregarlos al modelo.
En el ejemplo que te puse yo pagine un array, simplemente cambiando los datos en la variable
data y adaptando la lógica de la función
onPage(en caso de ser necesario) ya debería de funcionar.
Código java:
Ver originalpublic class Test {
private String[] data
= {"luis",
"pepe",
"juan",
"Ernesto"}; /*
* Components
*/
private PaginableTable paginableTable = new PaginableTable();
public void start() {
frame.
setDefaultCloseOperation(JFrame.
EXIT_ON_CLOSE); frame.setSize(400, 400);
frame.setResizable(false);
paginableTable.setItemsPerPage(2);
double lastPage
= Math.
ceil((double) data.
length / paginableTable.
itemsPerPage()); paginableTable.setLastPage((int) lastPage);
System.
out.
println(paginableTable.
lastPage()); paginableTable.setPaginableListener(new PaginableListener() {
@Override
public void onPage(Paginable paginable, int page) {
if (model.getColumnCount() == 0) {
model.addColumn("Name");
}
model.setRowCount(0);
int to = page * paginable.itemsPerPage();
int from = to - paginable.itemsPerPage();
for (int i = from; i < to; i++) {
if (data.length > i) {
model.
addRow(new Object[]{data
[i
]}); continue;
}
break;
}
}
});
@Override
paginableTable.previous();
}
});
@Override
paginableTable.next();
}
});
frame.add(previousButton);
frame.add(nextButton);
frame.add(paginableTable);
paginableTable.setPage(1);
frame.setVisible(true);
}
public static void main
(String...
args) { new Test().start();
}
}