Duvida de JTableHeader

seguinte: no projeto atual que estou trabalhando, tivemos a necessidade de implementar algumas funcionalidades em uma JTable: ordenação multipla e filtros de conteudo.

então, criei uma classe que extende JTableHeader, fazendo ele ordenar e filtrar o meu modelo. Até aí tudo funcionando, entretanto quando o sistema foi para teste beta, a criação dos filtros ficou MTO lenta, quase 1 min. O filtro funciona de modo muito simples: eu percorro o modelo, através do método getValueAt(row,col) e insiro o toString do objeto retornado em um treeset, para ficar ordenado. Pego esse treeset e mostro em panel logo acima do header da coluna. (Muito parecido com o Excel). Minha dúvida é a seguinte: existe algum jeito de quando a tabela chamar o getvalueat para montar a tabela, já preencher os filtros tb?

pensei agora: seria muita gambiarra se ao criar o modelo, passar como parâmetro o tableheader?

Voce pode ver como o ViniGodoy fez nessa classe:

com algumas diferenças, já que ele fez uma classe genérica e eu não, se naum me engano até um designer pattern, Decorator, (Gostaria de ter tido essa idéia primeiro O.o) , é basicamente o que eu faço. Mas achei que passar JTableHeader como parametro seria meio gambi, já que estou misturando as camadas (achu …), mas então vou fazer isso vlw!!