Ordenar data em JTable

6 respostas
W

Gostaria de ordenar por data um JTable como poderia fazer isso? Puxo a data como string para o JTable

6 Respostas

charleston10

Depende muito, vc esta alimentando o JTable com banco de dados?

marcospaulo.suporte

Está usando alguma IDE?
Está usando o DefaultTableModel?

Se for por banco de dados, já tentou dar um order by por data?

W

To usando netbeans, e a consulta que faço no banco retora dia e mes separados como string e concateno para exibir na tabela.

charleston10

Posta ai seu código, e a estrutura da sua tabela…

Verdade

vc tentou fazer isso?

gaulix

Como você está concatenando? MesDia ou DiaMes? MesDia é mais fácil pra fazer esse tipo de ordenação

W
DiaMes Vou postar os códigos. Código do ArrayList que traz os dados para preencher a tabela
public ArrayList obterAniversarios() {
        ArrayList dados = new ArrayList();
        try {
            Connection con = Conexao.obterCon();
            PreparedStatement psmt = con.prepareStatement("SELECT DAY(data_nasc) AS dia, MONTH(data_nasc) AS mes, nome,e_mail,"
                    + "DAY( CURDATE()) <= DAY(data_nasc) AND DAY(data_nasc) <= DAY(DATE_ADD(CURDATE(),INTERVAL 15 DAY)) AS dianiver, "
                    + "MONTH(CURDATE()) = MONTH(data_nasc) AS mesniver "
                    + "FROM cliente HAVING dianiver AND mesniver");
            ResultSet rs = psmt.executeQuery();
            while (rs.next()) {
                Cliente c = new Cliente();                   
                String dia = (rs.getString("dia"));
                String mes = (rs.getString("mes"));
                c.setNome(rs.getString("nome"));                
                c.setE_mail(rs.getString("e_mail")); 
                String data = dia+"/"+mes;
                String[] linha = {data, c.getNome(),c.getE_mail()};
                dados.add(linha);                 
            }
            con.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return dados;
    }
Código da tabela
private SimpleTableModel model;
String colunas[] = new String[]{"", "", ""};
        ArrayList dados = new ArrayList();

        DAOPrincipal dp = new DAOPrincipal(); 
        dados = dp.obterAniversarios();

        model = new SimpleTableModel(dados, colunas);

        tbAni.setModel(model);
        jScrollPane1.setViewportView(tbAni);        
        
        tbAni.getColumnModel().getColumn(0).setHeaderValue("DATA");
        tbAni.getColumnModel().getColumn(1).setHeaderValue("NOME");
        tbAni.getColumnModel().getColumn(2).setHeaderValue("E-MAIL");        
  }
Criado 4 de dezembro de 2012
Ultima resposta 4 de dez. de 2012
Respostas 6
Participantes 4