JTable - Ordenar Datas

3 respostas
ricinovacoes

Olá pessoal, tudo bem?

Ao clicar no título de uma coluna(data) do JTable, a ordenação é

feita apenas pelo dia, ou seja, o mês e o ano é ignonarado;

no banco de dados estou usando tipo TIMESTAMP;

não sei se devo usar o Comparator ou outro comando;

O código abaixo carrega a data no table;

if ((rsmd.getColumnType(col + 1) == Types.TIMESTAMP) || (rsmd.getColumnType(col + 1) == Types.DATE)){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); try{ if(rsvalue.getString(col+1)!=null){ Date dt = sdf.parse(rsvalue.getString(col+1)); sdf = new SimpleDateFormat("dd/MM/yyyy"); return sdf.format(dt); } else { return new String(); } }catch (ParseException pe){ return new String(); } }
agradeço muito por uma ajuda;

3 Respostas

Hebert_Coelho

A classe date tem o método after ou before que vc pode utilizar. Esse código vc iria colocar no seu comparator.

ricinovacoes

Oi jakefrog,

obrigado por responder;

já faz muitos dias que tento ordenar esta Table e não consigo;

eu uso o after/before para outras funções, mas não sei como usar

na table;

todas as colunas, inclusive valores decimais são ordenados a partir de um return:
return getValueAt(0, 1).getClass();
mas a coluna data está complicado;

 procurei em vários  sites e nada;

claro que algo está errado;
A

Ola Pessoal não estou encontrando em lugar algum como ordenar uma Jtable por data, encontrei esse post e estou com a mesma duvida
alguem pode ajudar?

Possuo uma TableModel que recebe dados desta maneira:

String[] coluna = {"Cod","Status","Remetente", "Data", "Mensagem"};
        String[][] linha = new String[b.length][coluna.length];
        for (int o = 1; o < b.length; o++) {
            String [] c = b[o];

            linha[o][0] = c[0];
            linha[o][1] = c[1];
            linha[o][2] = c[2];
            linha[o][3] = c[3];
            linha[o][4] = c[4];
  
        }
        Tabela.setModel(new JTable(linha, coluna).getModel());

Agradeço a ajuda!

Criado 28 de novembro de 2010
Ultima resposta 23 de fev. de 2012
Respostas 3
Participantes 3