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.

Foi útil?

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
scroll top