Pregunta

Estoy intentando filtrar un JTable utilizando un TableRowFilter. Funciona para mí en un ejemplo sencillo, pero me parece que no puede conseguir que funcione en la cosa real. El filtro se llama, los registros se imprimen - pero staill ver las filas. ¿Algunas ideas?

public class TopicTable extends JTable {

...

public TopicTable(ITopic topic) {

    super();
    TopicTableDataModel model = new TopicTableDataModel(topic);
    setModel(model);
    setRowSorter(generateTableRowSorter(model));        
    setFillsViewportHeight(true);
    setColumnRenderers();       
}

private TableRowSorter<TableModel> generateTableRowSorter(TableModel model) {

    RowFilter<Object, Object> classFilter = new RowFilter<Object, Object>() {

        @Override
        public boolean include(javax.swing.RowFilter.Entry<? extends Object, ? extends Object> entry) {
            log.debug("Filtering? " + entry.getValue(1));
            return false;
        }

    };

    TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model);
    sorter.setRowFilter(classFilter);
    return sorter;
}

...
}
¿Fue útil?

Solución

Como todos los errores estúpidos van - este fue uno de ellos. En otra clase que utilizan esta tabla, solía table.setAutoCreateRowSorter (verdadero) - por lo que incluso pensó que el clasificador original todavía corría, el incumplimiento también lo hizo, y luego no pasó nada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top