Porém não esta dando certo, acredito que seja porque o formato da data do campo da tabela não é igual ao da data que pego do jFormattedTextField, o retorno do comando System.out.println(d1) é:
Sat Jan 07 00:00:00 BRST 2017
e com o system.out do campo da tabela System.out.println(tabAtendimentos.getValueAt(tabAtendimentos.getSelectedRow(), 4)) é:
2017-01-17
Alguém teria alguma ideia de como resolver isso e o filtro funcionar?
Cara estou quebrando a cabeça e não tem jeito, inclusive havia tentado de uma forma semelhante que você me passou, dá erro porque no lugar do formatter.format(d1) ele diz que é necessário o tipo Date e não String, será que estou fazendo alguma outra coisa de errado, a data que esta no JTable esta vindo do meu banco executanto o comanto System.out.println(tabAtendimentos.getValueAt(tabAtendimentos.getSelectedRow(), 4)); a saída é 2017-01-20, então o formato estou colocando é “yyyy-MM-dd”.
Então faz o processo inverso, transformando a String em Date.
String data1 = //aqui você atribui sua primeira data salva no banco de dados;
String data2 = //aqui você atribui sua segunta data salva no banco de dados;
Date data;
DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
d1 = (Date) formatter.parse(data1);
d2 = (Date) formatter.parse(data2);
RowFilter low = RowFilter.dateFilter(RowFilter.ComparisonType.AFTER, d1, 4);
RowFilter high = RowFilter.dateFilter(RowFilter.ComparisonType.BEFORE, d2, 4);
Eu estou visualizando atualmente com a saída dos comandos:
System.out.println(d1);
e selecionando uma linha da tabela:
System.out.println(tabAtendimentos.getValueAt(tabAtendimentos.getSelectedRow(), 4));
As duas saídas mostram saídas diferentes de formato como expliquei acima mas não sei se seria confiável levar somente em consideração a saída do System.out.
Porque você utiliza o Locale.US na formatação do valor, é realmente necessário esse parâmetro ?
Outra observação, nesta linha aqui: dateFiltro = format.parse(strData); você precisa fazer o casting de Date ficando da seguinte maneira: dateFiltro = (Date) format.parse(strData);
Muito obrigado por sua ajuda.
Infelizmente não consegui fazer o filtro pela tabela, resolvi limpando a tabela e fazendo a busca no banco novamente com a condição das datas na instrução do SQL.