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??Originariamente inviato da Dreamer89
Però se elimino getColumnClass funziona lo stesso, perchè?
ta-da.... praticamente come il tuo.codice:public Class<?> getColumnClass(int columnIndex) { return Object.class; }![]()
Serve a scegliere il "renderer" da usare per la visualizzazione della cella. Lo spiega molto bene qui:Originariamente inviato da Dreamer89
Cos'è di preciso questa classe della colonna, e a cosa serve?
http://java.sun.com/docs/books/tutor...tml#editrender
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 inoltre, come faccio a rendere le celle non modificabili oppure modificabili?
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).Originariamente inviato da Dreamer89
E come faccio ad ottenere un valore di una cella appena modificata da un utente?
In ogni caso il valore di una cella lo puoi avere invocando getValueAt() sia dal JTable, sia direttamente dal table model.