Como filtrar linhas no JTable com base em colunas booleanas valorizadas?
Pergunta
Estou tentando filtrar linhas com base em uma coluna, digamos C1 que contém valores booleanos. Eu quero mostrar apenas linhas que têm 'verdadeiro' em C1. Eu olhei para os exemplos em http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#sorting. O exemplo usa um filtro regex. Existe alguma maneira de usar valores booleanos para filtrar linhas?
A seguir, o código que estou usando (emprestado do exemplo)
private void filter(boolean show) {
RowFilter<TableModel, Object> filter = null;
TableModel model = jTb.getModel();
boolean value = (Boolean) model.getValueAt(0,1);
//If current expression doesn't parse, don't update.
try {
// I need to used 'value' to filter instead of filterText.
filter =RowFilter.regexFilter(filterText, 0);
} catch (java.util.regex.PatternSyntaxException e) {
return;
}
sorter.setRowFilter(filter);
}
obrigada.
Solução
Você já tentou este exemplo de o javadoc? (Ligeiramente modificado).
RowFilter<Object,Object> startsWithAFilter = new RowFilter<Object,Object>() {
public boolean include(Entry<? extends Object, ? extends Object> entry) {
for (int i = entry.getValueCount() - 1; i >= 0; i--) {
if (entry.getValue(i).equals(true)) {
return true;
}
}
return false;
}
};
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow