Quote Originariamente inviata da MBdip Visualizza il messaggio
non ho però compreso il metodo setSquadra… O meglio, come deve essere implementato per fare ciò che dici?
I metodi di TableModel servono principalmente a JTable. Ma tu hai piena facoltà (e in certi scenari come il tuo è utile) di aggiungere tutti i metodi specifici per operare in maniera più strutturata/consona sugli oggetti nel table model.

Quindi metodi es. setSquadra, addSquadra, removeSquadra, removeAll ......

setSquadra è banale, l'unica particolarità è il fireXXX da scegliere, visto che con un set del genere possono cambiare potenzialmente i dati di tutte le colonne nella riga settata:

codice:
class SquadreTableModel extends AbstractTableModel {

    private final  ArrayList<Squadra> squadre;


    public void setSquadra(int row, Squadra squadra) {
        squadre.set(row, squadra);
        fireTableRowsUpdated(row, row);   // notifica che è cambiata tutta la riga (potenzialmente tutte le colonne)!
    }

    .....
}
Quote Originariamente inviata da MBdip Visualizza il messaggio
e poi ancora, come faccio a richiamare un metodo dello specifico TableModel? Se chiamo tabella.getModel().metodoCreato() viene restituito errore...
Perché getModel() ha tipo di ritorno TableModel, attraverso cui non puoi ovviamente "vedere" i metodi nuovi che hai definito in una implementazione specifica.
Se tu sai che l'oggetto è realmente un SquadreTableModel, puoi fare un cast (tanto sai tu che non fallirà a runtime):

((SquadreTableModel) tabella.getModel()).metodoCreato()

Ma così non è molto bello e pulito e ... dovresti oltretutto farlo ogni volta. La cosa più semplice e sensata è quella di tenerti da parte un campo apposito con il riferimento al tuo table model specifico. Tutto qui.