una tablemodellistener seleccionada obtener los fila ejemplo datos como java swing jtable nested rowfilter

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 .