Como implementar um tableModel
O que é o TableModel?
A maioria dos componentes swing possuem uma arquitetura que separa model e view, de forma que é definida uma interface para cada model. Dentro deste contexto, TableModel é a interface que representa o model da JTable.
O que acontece se eu não definir um TableModel para JTable?
Se não informarmos qual será o model, a JTable usará por padrão uma instância deDefaultTableModel.
Por que não é indicado usar o DefaultTableModel?
Na minha visão o principal motivo é a complexidade. Quero dizer que o código escrito quando se usa DefaultTableModel é muito mais difícil de se manter. Este motivo pra mim já bastaria para não utilizá-lo, porém se quiserem mais motivos, podem conferir as explicações do Vini Godoy em alguns tópicos do GUJ como este e este.
Por que a JTable precisa de um TableModel?
A JTable chama os métodos do TableModel para obter informações sobre o conteúdo da tabela, como número de linhas e colunas, conteúdo de cada célula, etc. Com estas informações em mãos, ela pode montar os dados na tela corretamente.
Quais são os métodos da interface TableModel?
Segue a lista dos métodos: getRowCount: retorna a quantidade total de linhas. Com esta informação, a JTable sabe quantas linhas devem ser exibidas; getColumnCount: retorna a quantidade total de colunas que a JTable deve usar para montar a tabela; getColumnName(int columnIndex): retorna o nome da coluna referente ao índice especificado por parâmetro. O nome da coluna é usado para definir o texto do cabeçalho;