tablemodellistener - obtener datos de un jtable en java netbeans
Filtro de fila JTable basado en valores de dos columnas diferentes (2)
Aquí está el código para mi propia pregunta, de acuerdo con la solución @camickr.
public void filterRowsResults(int x1, int x2) {
List<RowFilter<ResultsModel, Integer>> filters = new ArrayList<RowFilter<ResultsModel, Integer>>(2);
RowFilter<ResultsModel, Integer> filterC1 = RowFilter.numberFilter(ComparisonType.EQUAL, x1, 1);
RowFilter<ResultsModel, Integer> filterC2 = RowFilter.numberFilter(ComparisonType.EQUAL, x2, 2);
filters.add(filterC1);
filters.add(filterC2);
RowFilter<ResultsModel, Integer> filter = RowFilter.andFilter(filters);
resultsTableSorter.setRowFilter(filter);
}
Entonces puedo llamar al método de la siguiente manera:
filterRowsResults(valueC1, valueC2);
Quiero implementar el filtrado de filas en una JTable, en función de los valores de dos columnas diferentes:
column1 = 1
column2 = 5
Este es el método que realiza el filtrado de filas basado en INDEX_FIELD = 1 condición:
public void rowFiltering(int x) {
RowFilter<ResultsModel, Integer> IDfilter = RowFilter.numberFilter(
ComparisonType.EQUAL, x, column1);
resultsTableSorter.setRowFilter(IDfilter);
}
rowFiltering(1);
¿Cómo puedo implementar el filtrado de fila basado en dos valores? Algo como...
rowFiltering(valueColumn1, valueColumn2);
Use el and
filtro:
//rf = RowFilter.regexFilter(filterText.getText(), 0);
List<RowFilter<Object,Object>> filters = new ArrayList<RowFilter<Object,Object>>(2);
filters.add(RowFilter.regexFilter(filterText.getText(), 0));
filters.add(RowFilter.regexFilter(filterText.getText(), 1));
rf = RowFilter.andFilter(filters);
El código anterior se modificó a partir del ejemplo encontrado en Clasificación y filtrado .