Foros del Web » Programación para mayores de 30 ;) » Java »

Ordenar en Jtable

Estas en el tema de Ordenar en Jtable en el foro de Java en Foros del Web. Buenas tardes, Tengo una duda que me ha surgido. Tengo un Jtable que tiene campos como Usuario, Fecha_Creacion, codigocontrato Pues bien, una vez cojo los ...
  #1 (permalink)  
Antiguo 02/08/2012, 06:47
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años, 2 meses
Puntos: 14
Ordenar en Jtable

Buenas tardes,

Tengo una duda que me ha surgido. Tengo un Jtable que tiene campos como Usuario, Fecha_Creacion, codigocontrato

Pues bien, una vez cojo los datos de la BD los muestro por pantalla hago que se puedan ordenar los valores de la Tabla, para ello uso

Código JAVA:
Ver original
  1. TableRowSorter tr = new TableRowSorter(dtm);
  2. tablaUsuarios.setRowSorter(tr);


Pues bien, el problema que tengo es que por ejemplo para ordenar los Usuarios, lo hace bien puesto que lo hace por defecto "alfabeticamente" pero por ejemplo en codigocontrato que son números no me lo hace bien porque debería hacerlo ascendentemente.

Por ejemplo en codigocontrato si ordeno de menor a mayor me sale:

10015
100594
100595
100599
10067
101189
101668
101962


Está mal, ya que 10015 y 10067 deberían ser los primeros...


¿Cómo puedo establecer que en la columna Usuario sea alfabeticamente y en la de fecha o codigocontrato ascendentemente?

He buscado aquí pero no encuentro nada que me de pistas: http://docs.oracle.com/javase/tutori...e.html#sorting

Un saludo y gracias.


EDITO:

Con table.setAutoCreateRowSorter(true); la columna codigocontrato ya se me ordena bien, pero ahora pasa al revés, la fecha no se ve bien. Depende en que columna pulso debería ordenarse de una manera u otra.
__________________
Aprendiendo un poco de Java :D

Última edición por caruizj; 02/08/2012 a las 06:53
  #2 (permalink)  
Antiguo 02/08/2012, 08:15
 
Fecha de Ingreso: junio-2012
Mensajes: 9
Antigüedad: 11 años, 10 meses
Puntos: 1
Respuesta: Ordenar en Jtable

Hola caruizl, como va? podrias mostrar como definis el defaultTableModel, capaz que viene por ese lado.
  #3 (permalink)  
Antiguo 02/08/2012, 10:28
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años, 2 meses
Puntos: 14
Respuesta: Ordenar en Jtable

Cita:
Iniciado por dezky Ver Mensaje
Hola caruizl, como va? podrias mostrar como definis el defaultTableModel, capaz que viene por ese lado.
Si, lo declaro así:

Código java:
Ver original
  1. final DefaultTableModel dtm = new DefaultTableModel(); 
  2.        
  3.        
  4.         JTable tabla = new JTable(dtm);
  5.         tabla.setUpdateSelectionOnSort(true);      
  6.    
  7.        
  8.  
  9.             tabla.setPreferredScrollableViewportSize(new Dimension(pc.getWidth()+5, pc.getHeight()+5));
  10.             scrollPane = new JScrollPane(tabla);
  11.             tabla.setShowGrid(true);
  12.             tabla.setGridColor(Color.lightGray);
__________________
Aprendiendo un poco de Java :D
  #4 (permalink)  
Antiguo 02/08/2012, 14:14
 
Fecha de Ingreso: junio-2012
Mensajes: 9
Antigüedad: 11 años, 10 meses
Puntos: 1
Respuesta: Ordenar en Jtable

Proba poniendo

final DefaultTableModel dtm = new DefaultTableModel() {

public Class getColumnClass(int columnIndex) {
if (columnIndex == 0) {
return String.class;
}
if (columnIndex == 1) {
return Date.class;
}
if (columnIndex == 2){
return Long.class;
}
return String.class;
}
}
  #5 (permalink)  
Antiguo 02/08/2012, 20:44
Avatar de FiruzzZ  
Fecha de Ingreso: diciembre-2007
Ubicación: en casa
Mensajes: 470
Antigüedad: 16 años, 4 meses
Puntos: 41
Respuesta: Ordenar en Jtable

Cita:
Iniciado por dezky Ver Mensaje
final DefaultTableModel dtm = new DefaultTableModel() {

public Class getColumnClass(int columnIndex) {
if (columnIndex == 0) {
return String.class;
}
if (columnIndex == 1) {
return Date.class;
//..................................
}
Sería mejor definir la class de los objetos de cada columna desde la construcción de la DefaultTableModel, porque si después AGREGAS otra columna vas a tener que estar modificando el método, y peor aún si la columna la colocás ANTES de las ya existentes, tendrías que corregir los columnIndex, y varios problemas mas que no hace falta mencionar.
__________________
BadProgrammerException!
  #6 (permalink)  
Antiguo 03/08/2012, 04:31
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años, 2 meses
Puntos: 14
Respuesta: Ordenar en Jtable

Como lo hago desde el DTM Firuzzz?

De todas maneras no me funciona :S
__________________
Aprendiendo un poco de Java :D
  #7 (permalink)  
Antiguo 04/08/2012, 02:50
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años, 2 meses
Puntos: 14
Respuesta: Ordenar en Jtable

Nadie puede ayudarme?
__________________
Aprendiendo un poco de Java :D

Etiquetas: jtable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:05.