Pois é cara, ja tem uma ação um REGIME quase militar aqui no forum contra DefaultTableModel, tem um post do Vini aqui no GUJ que explica muito bem como usar seu proprio Model extendendo de AbstractTableModel, vale muito apena vc dar uma olhada.
O princípio básico de se criar um model próprio é justamente não ter algo como
List<Object[]>
dentro do model, e sim ter um:
List<Pessoa>
Isso sim, traz grandes vantagens para o desempenho e a manutenção do sistema, pois evita que você tenha que copiar dados da sua classe de negócio para seu modelo dentro da sua view. Também permite que você exiba só informações relevantes para seu usuário, sem perder informações importantes, como o id de quem está naquela linha.
Seu model, apesar de funcionar, não deixa de ser uma reescrita do Default e, portanto, é tão prejudicial quanto o próprio Default.
Imaginei que postariam algo sobre o List<Object[]>. hehehe
Uso o List<Object[]> pra ter um Modelo mais genérico.
Concordo totalmente com a campanha, principalmente por já ter usado o DefaultTableModel e é um inferno pra dar manutenção, mas do jeito que fiz, pra mim é suficiente.
Mas ainda existe um pequeno problema que a maioria dos TableModels que vi implementado ainda usa Object[][] ou List<Object[]> que no final das contas é um DefaultTableModel mais “bonitinho”.
O interessante realmente é ter um get que retorna o tipo do objeto que voce quer.
Um otimo exemplo é o TableModel generico que o ViniGodoy criou que usa enums para as colunas ou o ObjectTableModel que criei que usa anotações nos atributos da classe.