Da ich an einem ganz ähnlichem Problem arbeite bin auch ich etwas neugierig. Darf man auch fragen, ob du deine Values sowohl spalten- aus auch zeilenspezifische nachlädst, oder gilt das nur für ganze Datensätze? Ich frage, da ich selber aktuell an einer LazyListTableModel-Implementierung arbeite die von der Umsetzung her etwas anders geartet ist, als das was ich bei dir so raushöre. Hast du dich da an ein bestimmtes Vorbild gehalten?
Ich lade die Daten immer in Form von ganzen Datensätzen nach, doch besteht da aktuell das Problem, wie ich mit Situationen umgehe, wie einem aktuellen Tabellenfilter, der über alle Spaltenvalues informiert sein muss, wenn anch einem bestimmten Spalteninhalt gefiltert werden soll. Vielleicht kannst du mich ja da in der Hinsicht auf den richtigen Weg bringen.
Zu deinem Problem: Ich kann da als Implementierungsdetail sehr empfehlen das TableModel selber bestimmen zu lassen, wann Daten nachgeladen werden sollen, da du dich dann um viewspezifische Details (wie Spaltenbreiten) nicht mehr kümmern brauchst, da die Tabelle nicht neu gezeichnet werden muss. Um die Zugriffe etwas zu optimieren kannst du dann einfach immer (so wie du das jetzt auch schon machst, wenn ich dich richtig verstanden habe) ganze Intervalle im TableModel nachladen. Die Table aktualisiert seine Inhalte dann einfach über die TableRenderer automatisch, sobald die neuen Values im TableModel angekommen sind. Du musst nur beim einmaligen Aufbau der Table vorweg wissen, wieviele Datensätze du besitzt und dort Dummydatensätze einfügen, die dann nach und nach durch die geladenen Daten ersetzt werden.
Grüße,
ymene