
Originariamente inviata da
MBdip
non ho idea di dove mettere default: return;.
Io intendevo:
codice:
public void setValueAt(Object value, int row, int column) {
Squadra squadra = squadre.get(row);
switch (column) {
case 0: squadra.setNome((String)value); break;
default: return;
}
fireTableCellUpdated(row, column);
}

Originariamente inviata da
MBdip
Perdonami la domanda, ma per quale motivo (dopo aver impostato nuovo capitano o cancellato il giocatore capitano) se passo col mouse sui tab del jTabbedPane oppure se clicco sulla tabella, Quest'ultima viene aggiornata?
come fa a "sapere" che è cambiato qualcosa?
No, infatti non è questione di "sapere" che qualcosa è stato modificato. Si tratta al massimo di un semplice "repaint". Ma se un repaint (per qualunque motivo) arriva alla tabella, allora vengono sicuramente coinvolti i renderer, che quindi riprendendo i dati dal model di fatto aggiornano visivamente i dati.

Originariamente inviata da
MBdip
Non ci sarebbe un modo per rendere la tabella dinamica? Cioè, Se modifico qualcosa in un'altra finestra, viene modificata la tabella che legge direttamente le modifiche dell'arraylist.
È solo questione di "parlare" direttamente con i table model. Che chiaramente possono/devono offrire i metodi specifici per operare le varie modifiche.
Ad esempio visto che prima avevi scritto:
codice:
Squadra s=database.get_ArchivioSquadre().getSquadre().get(rowSquadraIndex);
Giocatore g=s.get_componenti().get(rowIndex);
s.setCapitano(g);
Volendo continuare a gestire la cosa così, si poteva anche fare in una maniera effettivamente ancora più semplice, ovvero mettere in SquadreTableModel un nuovo metodo:
public void setSquadra(int row, Squadra squadra)
che aggiorna la struttura dati e notifica i cambiamenti. E sarebbe in effetti anche più generico e più in linea con il concetto del table model, rispetto al setCapitano che immaginavo prima.
E in SquadreTableModel puoi aggiungere altri metodi ancora:
public void addSquadra(Squadra squadra)
public void removeSquadra(int row)
ecc....
Insomma puoi mettere tutti i metodi che sono sensati per le operazioni che devi poter applicare.