Ver Mensaje Individual
  #4 (permalink)  
Antiguo 17/12/2009, 06:06
usuarioprogramador
 
Fecha de Ingreso: diciembre-2009
Mensajes: 2
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: ordenar tabla por columnas

Hola, necesito algo parecido a lo que comentais.
En mi caso, en lugar de una tabla jtable tengo una tabla swingx (tablax) que ordena ella solita las columnas. El problema es que lo ordena correctamente
cuando son strings pero cuando son integer o date lo ordena como si fuesen igualmente strings.

En la funcion que expongo a continuacion genero el modelo de datos de forma dinamica con informacion obtenida de la base de datos y luego se lo asigno a la tabla:

arDatos[i] es un array con la informacion que necesito


Object[][] data = new String[num_datos][3];

String[] columnNames = {"columnaTexto", "ColumnaEntero", "ColumnaFecha"};

for (int i = 0; i < num_datos; i++) {
ClaseConDatos s = (ClaseConDatos) arDatos[i];

if(s == null){
break;
}else{

data[i][0] = s.getTexto();
data[i][1] = Integer.toString(s.getEntero());
data[i][2] = toFecha(s.getFecha());

}
}

DefaultTableModel dtm = new DefaultTableModel(data, columnNames) {
@Override
public boolean isCellEditable(int row, int column) {return false;}
};


jXTable1.setModel(dtm);



Como podria anadir por ejemplo al DefaultTableModel otro argumento que fuesen los tipos de las columnas?
Hay algun modo de poder ordenar la columnas por enteros o fecha?
He probado de forma estatica y lo hace perfectamente si le dices el tipo de datos que va en cada una de ellas.
pero no se muy bien como hacerlo de forma dinamica.
Puede que sea mejor usar un jtable normal y ordenarlo con un comparador? he visto varios ejemplos....

gracias!