This definitely is the solution as I have changed your code and proved it works.
BTW whilst changing your code I noticed you should do the following:
1. Use
Java naming conventions. Class names start with capital letters etc
2. Format your code consistently - it will help you to read your code and find mistakes such as where you currently add your filter.
3. Before setting the frame to visible call it's pack() method so the frame sizes correctly.
4. Rather than setting an empty filter set a filter for ".*" so it toggles between displaying all the rows and just TAXI01 rows
5. Get rid of filtersHash or use it as a cache - there's no point in storing the filters in filtersHash if you remove them on every toggle. If you want to cache the filters, fill the filtersHash map when you create the table and don't remove any filters from it.
6. Don't remove the filters from 'filters' in a while loop - if your code is correct there should only ever be one type of each filter in 'filters' and if you want to remove all the filters just use the removeAll() method.