Criar meu proprio TableModel, AbstractTableModel

Salve galera…

Seguinte, eu sempre usei JTable com DefaultTableModel, agora estou pensando em criar meu proprio TableModel com AbstractTableModel.

O que quero saber eh se para cada Bean eu preciso criar um model ??

As customizacoes do meu TableModel, todos ficaram no model, como: Coluna Editavel, Tipo de Coluna(boolean, string, integer, combobox etc…). Pintar cada linha de uma cor, texto da coluna, coluna para ordenacao, alinhamento de texto de coluna, coluna lateral, alinhamento de texto nas colunas etc…etc…etc…

Eh isto…Estou vendo um esquema q encontrei aqui no forum, q gostei bastante:
http://www.guj.com.br/java/222640-me-ajudem-a-criar-meu-proprio-jtable
http://www.guj.com.br/articles/147
http://www.guj.com.br/java/199067-redimensionar-jtable---pra-variar--resolvido-/2#1001295

mas ainda tenho essas duvidas.

desde ja, obrigado.

A princípio sim. Mas se tiver criar models para muitas tabelas, recomendo o ObjectTableModel do projeto Towel.

Algumas ficarão no TableModel, como coluna editável, tipo da coluna. Outras implementações devem ser feitas no TableCellRenderer, como alinhamento do texto, cor das células. Vai depender do recurso que você quer usar.

O model, como o próprio nome diz, lida com a camada de modelo, não de view.
Portanto: cores, destaques, editores e seleção ficam fora do model.

entendi Eric…

Uma outra duvida q tenho, eh por exemplo, eu trabalho com NetBeans, entaum eu sempre arrasto meu JTable a partir da paleta de componentes. Entaum no caso do AbstractTableModel, eu faria:

MeuTableModel modelo = new MeuTableModel();
minhaTabela.setModel(modelo);
modelo.customizaTabela(minhaTabela);

Para criar umas customizacoes de TableCellRenderer na mesma classe, em um metodo q a recebe, correto ?

tipo

public void customizaTabela(JTable minhaTabela){
            minhaTabela.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
            minhaTabela.setAutoCreateColumnsFromModel(false);
//etc...etc...etc...
}

seria + ou - isso ??

t+ e obrigado

[quote=fernandopaiva]Uma outra duvida q tenho, eh por exemplo, eu trabalho com NetBeans, entaum eu sempre arrasto meu JTable a partir da paleta de componentes. Entaum no caso do AbstractTableModel, eu faria:

MeuTableModel modelo = new MeuTableModel();
minhaTabela.setModel(modelo);
modelo.customizaTabela(minhaTabela);

Para criar umas customizacoes de TableCellRenderer na mesma classe, em um metodo q a recebe, correto ?

tipo

public void customizaTabela(JTable minhaTabela){ minhaTabela.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); minhaTabela.setAutoCreateColumnsFromModel(false); //etc...etc...etc... } [/quote]
Você pode criar este método “customizaTabela”, mas não dentro do seu model. O model deve se preocupar com os dados da tabela, não com a forma como a tabela é exibida para o usuário.