Eu estava usando o DefaultTableModel, então vi aqui no guj, uma mobilização de grande parte da galera para os iniciantes (como eu) não utilizarem o Default, gostaria que vocês me dessem dicas de TableModel e se possivel, algum link que mostre como esse TableModel pode ser utilizado e como eu posso adicionar em minha biblioteca. Abraços
Cara, eu ja trabalhei bastante e ainda trabalho, com o DefaultTableModel, quando utilizo Swing, porém, acho melhor que poste algumas dúvidas pra podermos tentar te auxiliar melhor…
Abçs.
Na verdade, eu queria saber se tem um jeito de deixar as linhas não editáveis. Até agora meu único problema com o Default é esse
Beleza cara, tem sim…
Vou te dar um dica boa…
Se estiver usando o NetBeans, é moleza… configure o modelo da sua JTable manualmente… as colunas, para não serem editáveis, o espaço e tudo mais…
E na hora de popular, só faça + o - isso:
[code]public void atualizarClientesTabela(){
List lista = Cliente.listar();
DefaultTableModel modelo = (DefaultTableModel) tblClientes.getModel();
//limpar tabela
while(modelo.getRowCount()>0){
modelo.removeRow(0);
}
Object[] obj = new Object[5];
for(int i=0; i<lista.size(); i++){
obj[0]=lista.get(i).getCodigo();
obj[1]=lista.get(i).getNome();
obj[2]=lista.get(i).getRgIe();
obj[3]=lista.get(i).getCpfCnpj();
obj[4]=lista.get(i).getEndereco().getCep();
modelo.insertRow(i, obj);
}
}[/code]
Qualquer duvida posta ae!
Abçs.>
Existem diversos exemplos de como criar um TableModel, completos e com código funcionando nos links da minha assinatura.
Eu recomendo que você realmente não use o Default, aprenda a fazer seu próprio, ou use um TableModel mais poderoso, como o ObjectTableModel do projeto towel, ou o TableModel do projeto GlazedLists.
O DefaultTableModel além de lento, consome mais memória e move o código que deveria ficar no model para a view. Sem falar que, apesar de mais fácil de aprender, é muito mais complicado de usar.
Mesmo código sem o DefaultTableModel:
public void atualizarClientesTabela(){
ClienteTableModel modelo = (ClienteTableModel) tblClientes.getModel();
modelo.clear();
modelo.addAll(Cliente.listar());
}