el botón para filtrar JTable para la casilla de verificación está seleccionado
Tengo una JTable bastante similar a esta.
http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#sorting
He logrado establecer un filtro normal (una función de búsqueda) y funciona bien. Quiero tener un botón que muestre inmediatamente solo las filas donde se selecciona Vegetariano.
Ok, ahora gracias a la ayuda brindada por @peeskillet y @HovercraftFullOfEels, esta es la solución a mi problema:
final TableRowSorter<MovieReviewTableModel> rowSorter = new TableRowSorter<MovieReviewTableModel>(tableModel);
// custom RowFilter
RowFilter<MovieReviewTableModel, Integer> filter = new RowFilter<MovieReviewTableModel, Integer>()
{
// include method returns true to show the row and false to not show it
@Override
public boolean include(RowFilter.Entry<? extends MovieReviewTableModel, ? extends Integer> entry)
{
int modelRow = entry.getIdentifier(); //row index
boolean checked = ((Boolean)entry.getModel().getValueAt(modelRow, 3)).booleanValue();
System.out.println(checked); // to test the values coming through
return checked;
}
};
table.setRowSorter(rowSorter);
JButton onlyFeatured = new JButton("Only show Featured");
threeButtonPanel.add(onlyFeatured);
onlyFeatured.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
rowSorter.setRowFilter(filter);
}
});
¡Funciona! Muchas gracias chicos, les debo bebidas o algo así. :RE