usar tabla setvalueat propiedades ordenar filtrar filas crear configurar como java swing jtable rowfilter

java - tabla - ¿Cómo puedo filtrar filas en una JTable?



propiedades de jtable en java (4)

Tengo una JTable que tiene muchas cadenas en eso. He creado un cuadro de texto para la entrada del usuario, arriba de la tabla. Quiero un filtro de fila que puede eliminar las filas que tienen cadenas ingresadas por el usuario en el cuadro de texto. por favor ayúdame para esto.


Para recoger el comentario de kd304, puede usar GlazedLists . Allí usará FilterList como entrada para su JTable, y FilterList se encargará del resto.


Puede usar JTable.setAutoCreateRowSorter que usará el clasificador / filtro de fila predeterminado de JTable


de aquí:
clasificación y filtrado

En el siguiente código de ejemplo, crea explícitamente un objeto clasificador para que luego pueda usarlo para especificar un filtro:

MyTableModel model = new MyTableModel(); sorter = new TableRowSorter<MyTableModel>(model); table = new JTable(model); table.setRowSorter(sorter);

Luego filtra según el valor actual de un campo de texto:

private void newFilter() { RowFilter<MyTableModel, Object> rf = null; //If current expression doesn''t parse, don''t update. try { rf = RowFilter.regexFilter(filterText.getText(),0); } catch (java.util.regex.PatternSyntaxException e) { return; } sorter.setRowFilter(rf); }


Esta solución de pocas líneas parece funcionar:

private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) { TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(((DefaultTableModel) jTable1.getModel())); sorter.setRowFilter(RowFilter.regexFilter(jTextField1.getText())); jTable1.setRowSorter(sorter); }