Il isCellEditable in JTable è fatto così:
codice:public boolean isCellEditable(int row, int column) { return getModel().isCellEditable(convertRowIndexToModel(row), convertColumnIndexToModel(column)); }
Alla fin fine usa isCellEditable del model ma ..... la differenza è concettuale sugli indici di riga/colonna. Al isCellEditable di JTable vanno passati indici nella "view", in pratica quello che vedi fisicamente nella tabella.
Gli indici nella "view" e nel "model" possono non corrispondere. Per default (se non lo disabiliti), l'utente può trascinare/spostare le colonne, quindi gli indici di colonna possono essere differenti tra view e model. E da Java 6 è possibile applicare alla tabella un RowSorter, cosa che può scombinare gli indici di riga.
In generale: in JTable gli indici che ricevi/passi sono nella "view", non nel "model".


Rispondi quotando