Originariamente inviato da Dreamer89
Però se elimino getColumnClass funziona lo stesso, perchè?
Hai definito una anonymous class che estende AbstractTableModel e hai fatto l'override di getColumnClass(). Bene. Ma se togli il "tuo" getColumnClass viene ereditato quello già implementato da AbstractTableModel. E sai come è fatto quello di AbstractTableModel??

codice:
    public Class<?> getColumnClass(int columnIndex) {
	return Object.class;
    }
ta-da.... praticamente come il tuo.

Originariamente inviato da Dreamer89
Cos'è di preciso questa classe della colonna, e a cosa serve?
Serve a scegliere il "renderer" da usare per la visualizzazione della cella. Lo spiega molto bene qui:
http://java.sun.com/docs/books/tutor...tml#editrender

Originariamente inviato da Dreamer89
E inoltre, come faccio a rendere le celle non modificabili oppure modificabili?
Vedi isCellEditable() del table model, di cui devi fare l'override. (quello implementato in AbstractTableModel ritorna sempre false indipendentemente da riga/colonna).

Originariamente inviato da Dreamer89
E come faccio ad ottenere un valore di una cella appena modificata da un utente?
Innanzitutto il tuo table model dovrebbe mantenere lo "stato" delle celle. Quindi devi avere una struttura dati "dietro le quinte" e implementare setValueAt() (che nota bene in AbstractTableModel è implementato "vuoto" ... non fa nulla).

In ogni caso il valore di una cella lo puoi avere invocando getValueAt() sia dal JTable, sia direttamente dal table model.