Table Row Sorter
Table Row Sorter
Para que la tabla sea ordenable no necesitamos hacer grandes cosas. Basta con pasarle al
JTable una instancia de TableRowSorter. A partir de ese momento, haciendo click en la
cabecera de las columnas con el ratón, ordenaremos el JTable en orden ascendente o
descendente alternativamente según esa columna.
modeloOrdenado.setRowFilter(RowFilter.regexFilter("2", 1));
package chuidiang.ejemplos.jtable;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.RowFilter;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;
/**
* Ejemplo de uso de TableRowSorter y RowFilter.
*
* @author Chuidiang
*
*/
public class PruebaJTable {
/**
* main del ejemplo.
*
* @param args
*/
public static void main(String[] args) {
new PruebaJTable();
}
/**
* Instancia un JFrame con un JTable dentro y diez filas de
datos. Lleva un
* trozo de código comentado para poder reemplazar.
*/
public PruebaJTable() {
JFrame v = new JFrame("Prueba JTable");
v.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}
RowFilter.regexFilter()
El que hemos visto en el ejemplo. El siguiente filtro hace que pasen las filas que en la primera
columna tengan un texto que empiece por "a" minúscula
RowFilter.regexFilter("^a", 0);
RowFilter.dateFilter()[editar]
Para fechas. El siguiente filtro haría que pasaran el filtro aquellas fechas anteriores a la actual
en la columna 2.
RowFilter.numberFilter()[editar]
Para números. El siguiente filtro haría que pasaran el filtro las filas con un 10 en la primera
columna