Reputation: 435
I have a JTable and I would like to do a filter from a JTextfield
but only filter the results based on one column and not to search all columns.
I have my JTable I can filter but my filter will filter and search every column of the table I want to restrict it to one column
Can it be done ?
Upvotes: 8
Views: 12210
Reputation: 51524
listen to changes in the textFields document and set the appropriate rowFilter limited to the column you want to filter:
// on document change
RowFilter rowFilter = RowFilter.regexFilter(textField.getText(), myColumn);
table.getRowSorter().setRowFilter(rowFilter);
(type-cast and guard against empty textfield ommitted)
Upvotes: 15
Reputation: 57381
You can extend envelope table model like this http://java-sl.com/envelope.html and leave only necessary rows.
Upvotes: 1
Reputation: 23629
Keep a master copy of all the rows (or supporting data) in the background.
When searching, take the search criteria from the text field and rebuild the table model by only adding items that match the criteria. If the text field is empty then add all rows.
Upvotes: 1