RowSorter no jtable

2 respostas
A

GAlera, bom dia…

seguinte… meu codigo funciona perfeitamente, popula meu jtable sem problemas, porém quando eu clico no cabeçalho da coluna para classificar pela coluna clicada ele classifica como se os dados fossem String e são dados numéricos…Acredito que eu teria que mudar algo no columnmodel para setar a coluna como double ou algo assim…
Alguem pode me ajudar??

private void populaTabelaInicio(List lista,List colunas){
        int i;
        Object[] registro = null;
        JTable tab = this.jTable1;
        DefaultTableModel model =  (DefaultTableModel) tab.getModel();
        model.setRowCount(0);
        model.setColumnCount(0);
        
        for (i=0;i<=colunas.size()-1;i++){
            
            model.addColumn(colunas.get(i).toString());
           
            
        }

        for (i=0;i<=lista.size()-1;i++){
            
                registro = (Object[]) lista.get( i );
                model.addRow(registro);

            
        }


        tab.setModel(model);
        
        tab.setAutoCreateRowSorter(true);

2 Respostas

ViniGodoy

O seu código popula a JTable com um grande problema: Ele usa DefaultTableModel

Com isso, você gera os seguintes problemas:

  1. Aumenta consideravelmente o espaço necessário para armazenar seus dados;
  2. Perde performance com a sincronização desnecessária do model;
  3. Não representa os tipos de dados de seus objetos corretamente;
  4. Perde a estrutura dos dados dentro do table;
  5. Destroi completamente o modelo MVC ou qualquer boa prática de código relacionada a interface gráfica.

A solução para o seu problema, e para todos os problemas listados acima, é você aprender a fazer seu próprio tablemodel.
Siga o link da minha assinatura, ao lado do texto em vermelho, para ver como.

A

vou tentar… ja arrumei coisa pra fazer no find…rsrsr…vlw pela dica

Criado 22 de setembro de 2011
Ultima resposta 22 de set. de 2011
Respostas 2
Participantes 2