![]() |
ordenar tabla por columnas Hola a todos! Os cuento un problemilla. Tengo que mostrar una tabla con unos resultados de unos estudios. Estos estudios tienen un numero. Me gustaria que cuando apareciera la tabla apareciera ordenada por los numeros de los estudios. Tengo este codigo para cargar la tabla: jTableResultados.setModel(modeloTabla); TableRowSorter<ModeloTablaResultados> ordenador = new TableRowSorter(modeloTabla); jTableResultados.setRowSorter(ordenador); Entonces la tabla aparece con los resultados en un orden aleatorio y posteriormente, si pincho sobre la cabecera de la columna de los numeros se ordena como quiero. ¿Como puedo indicar que me aparezca ordenada por la columna de los numeros de estudio directamente, sin necesidad de pinchar sobre la cabecera? Gracias por vuestra atención! |
Re: ordenar tabla por columnas Me parece que tu solucion es traerla ordenada desde la consulta SQL ORDER BY NOMBRE_CAMPO |
Re: ordenar tabla por columnas la solucion es la que te paso goncafa pero ademas la JTable tiene una opcion para crear sort automatico de las columnas cuando se les hace doble clic en el header de la columna jTable1.setAutoCreateRowSorter(true); saludos |
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! |
Respuesta: ordenar tabla por columnas Si le pones los datos como String, es normal que te los ordene como String, ya que el no sabe que tipo de dato hay dentro. Para que te los ordene bien tendrías que darle los datos en su forma "natural", como Integer o Date, y así sabrá como ordenarlos. S! |
| La zona horaria es GMT -6. Ahora son las 08:18. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.