Table - ordenar coluna data (timestamp)

Olá pessoal,

estou me batendo para ordenar uma coluna TIMESTAMP de uma table;
encontrei vários exemplos, mas quando o campo é data complica tudo;
ordena apenas pelo dia, ignorando o mês+ano;
o erro acontece tanto no DefaultTableModel quanto no AbstractTableModel;
quando aciono através de um JButton funciona:

private JButton getBtCancelarbx1() { .... btCancelarbx1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { if(ascending==true){ ascending=false; } else { ascending=true; } model.ordenarPorEmissao(ascending); } });

Na rotina abaixo eu crio a Lista:

ResultSet rsgeral=conexao.setExeQuery(selecao); try { String dataemissao = null; lista.clear(); lista = new ArrayList<Produto>(); rsgeral.beforeFirst(); while (rsgeral.next()) { // formata data SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); java.util.Date dt = null; try { dt = sdf.parse(rsgeral.getString("com_emissao")); sdf = new SimpleDateFormat("dd/MM/yyyy"); dataemissao = sdf.format(dt); } catch (ParseException e) { e.printStackTrace(); } // formata valor DecimalFormat df = new DecimalFormat("##,###.00"); String valor = df.format(rsgeral.getDouble("com_valorcomissao")); lista.add(new Produto(rsgeral.getString("com_codigo"),rsgeral.getString("com_ctrlparcela"), rsgeral.getString("tbc_codigo"),rsgeral.getString("codrep"), rsgeral.getString("razaosocial"),valor,dataemissao, rsgeral.getString("com_observacao"),false)); } } catch (SQLException e) { e.printStackTrace(); } model = new ProdutoTableModel(lista); //atribui o modelo a table gradetable.setModel(model); model.ordenarPorEmissao(ascending); // a variável "ascending" varia entre true:false

E abaixo a função Comparator:

    public void ordenarPorEmissao(final boolean ascending) {
        Collections.sort(produtos, new Comparator<Produto>() {
            public int compare(Produto o1, Produto o2) {
            	int xreturn=0;
           		String ab = null; String ba = null;
	            SimpleDateFormat sdf1 = new SimpleDateFormat("dd/MM/yyyy");
	            SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");	            
           		Date dt;
				try {
					dt = sdf1.parse(o1.getCol6());
	           		ab = sdf2.format(dt);
				} catch (ParseException e) {e.printStackTrace();
				}
				try {
					dt = sdf1.parse(o2.getCol6());
	           		ba = sdf2.format(dt);
				} catch (ParseException e) {e.printStackTrace();
				}
              if(ascending){
            	  xreturn=ab.compareTo(ba);
              } else {
            	  xreturn=ba.compareTo(ab);
              }
			return xreturn;
            }
        });
        fireTableDataChanged();
    }

O que pode estar errado?
Criei uma rotina para usar o DoClick quando o handleClickEvent fosse acionado, ou seja,
quando acontecer o click na coluna da data, o JButton é “apertado”, e claro que funcionou, mas
isso é muito ruim;

em teoria se tu comparar data com data (sem o simple date format) ja deveria ordenar…
caso nao funcione use os milisegundos da datae compare como int …

olá filipechaves, agradeço a sua ajuda;

quando elimino a função SimpleDateFormat a data aparece
no formato “2010-08-31 00:00:00”, e desta maneira a
ordenação acontece;
o problema é o formato; o engraçado quando faço uma simulação
com JButton (DoClick) funciona legal!

O que está errado??

agora eu nao consigo criar um caso de teste XD hoje a noite tentarei.

faça 2 “get” para a data, ordene por um e exiba o outro XD

Oi filipechaves,

coloquei duas colunas com datas:
1- 2010-08-18 00:00:00
2- 10/08/2010

consigo exibir as duas datas, mas a ordenação só acontece
quando clico na coluna “2010-08-18 00:00:00”;
ou seja, não sei fazer a rotina “ordenar um e exibir outro”;

qualquer ajuda agradeço muito;

pesquise sobre cell renderer na jtable, assim que eu tiver um tempo ajudo com algo masi concreto XD desculpe