La questione non è delle più semplici. Una tabella non è fatta solo di righe, ma anche di colonne. Quindi dire "voglio che vengano mostrate le ultime 4 righe" non è sufficiente: ti basta che vengano mostrate le prime colonne delle ultime 4 righe (scroll orizzontale tutto a sinistra)? Vuoi visualizzare le ultime colonne delle ultime righe (scroll orizzontale tutto a destra)?
Supponiamo la prima, dovrebbe essere sufficiente questo codice (non l'ho provato):
codice:
public void addRow(TuaRiga riga) {
... // Tutto come mostrato prima
scrollToLastRow();
}
...
private void scrollToLastRow() {
int lastRow = tabella.getRowCount() - 1;
Rectangle rect = tuaTabella.getCellRect(lastRow, 0, true);
tuaTabella.scrollRectToVisible( rect );
tuaTabella.clearSelection();
tuaTabella.setRowSelectionInterval(lastRow, lastRow);
tuaTabella.getModel().fireTableDataChanged();
}
Questo dovrebbe selezionare l'ultima riga e renderla visibile (forando, quindi, lo scroll del JScrollPane).
Ciao.