Grazie mille! Comunque a me servirebbe un listener che ogni volta che una tabella viene modificata da un utente cliccando su una cella, dici che addTableModelListener vada bene?Originariamente inviato da andbin
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??
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:
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).
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.

Rispondi quotando