TableModel - Dica

6 respostas
V

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

6 Respostas

Anime

Oi,

http://www.guj.com.br/java/199067-redimensionar-jtable—pra-variar–resolvido-/2#1001295

leonhard32

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.

V

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

leonhard32

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:

public void atualizarClientesTabela(){
        List<Cliente> 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);
        }
}

Qualquer duvida posta ae!
Abçs.>

ViniGodoy

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.

ViniGodoy

Mesmo código sem o DefaultTableModel:

public void atualizarClientesTabela(){ ClienteTableModel modelo = (ClienteTableModel) tblClientes.getModel(); modelo.clear(); modelo.addAll(Cliente.listar()); }

Criado 6 de maio de 2011
Ultima resposta 7 de mai. de 2011
Respostas 6
Participantes 4